Я знаю, что есть способ узнать, какие спецификации занимают больше всего времени, но я сомневаюсь в загрузке RSpec. Спецификации сами по себе не занимают слишком много времени, но нагрузка велика.
Есть способ узнать это?
Я работаю над унаследованным кодом Rails и не знаю, какие драгоценные камни могут повлиять на него. .
Как узнать, почему запуск RSpec занимает так много времени?
Ответы (2)
Может зависеть от приложения (например, количество драгоценных камней для загрузки). Чтобы значительно ускорить время загрузки Rspec, вы можете использовать команду spring-commands-rspec, которая реализует команду rspec для Spring (предварительный загрузчик приложения Rails), как таковую:
В вашем gemfile добавьте:
gem 'spring-commands-rspec', group: :development
затем запустите: bundle install
и, наконец:
bundle exec spring binstub rspec
Запустите Rspec до и после этой процедуры, вы должны увидеть огромное улучшение.
Подробнее здесь:
https://github.com/jonleighton/spring-commands-rspec https://schwad.github.io/ruby/rails/testing/2017/08/14/50-times-faster-rspec-loading.html https://www.netguru.com/blog/9-ways-to-speed-up-your-rspec-tests
spring stop
в конце может быть полезен для перезапуска Spring!
- person Salomanuel; 06.07.2020
Для всех, кто приходит сюда, проблема заключалась в том, что RSpec усекался каждый раз, когда я запускал тесты.
Я обнаружил это, просматривая журнал во время его запуска (tail -f log/test.log
).
Чтобы решить эту проблему, я использовал < гем href="https://github.com/DatabaseCleaner/database_cleaner" rel="nofollow noreferrer">database_cleaner и настроил его с :transaction
в качестве стратегии очистки.
config.before(:each) do
DatabaseCleaner.strategy = :transaction
end
spec_helper.rb
, но таблицы продолжают обрезаться как для log/test.log
файла. Я что-то упускаю?
- person Caco; 04.03.2021