Как узнать, почему запуск RSpec занимает так много времени?

Я знаю, что есть способ узнать, какие спецификации занимают больше всего времени, но я сомневаюсь в загрузке RSpec. Спецификации сами по себе не занимают слишком много времени, но нагрузка велика.
Есть способ узнать это?
Я работаю над унаследованным кодом Rails и не знаю, какие драгоценные камни могут повлиять на него. .


person Igorzovisk    schedule 20.04.2019    source источник
comment
stackoverflow.com/ вопросы/33299812/   -  person Pavel Mikhailyuk    schedule 20.04.2019


Ответы (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

person Guillaume Bihet    schedule 20.04.2019
comment
запуск 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
person Igorzovisk    schedule 18.11.2019
comment
Я так и сделал, добавив ваш фрагмент в spec_helper.rb, но таблицы продолжают обрезаться как для log/test.log файла. Я что-то упускаю? - person Caco; 04.03.2021