我知道有一种方法可以知道哪些规范花费的时间最多,但是我怀疑是RSpec的加载。规范本身并不需要花费太多时间,但负担却很大。
有办法发现吗?
我正在研究Rails的旧代码,但我不知道哪个gem可能会影响它。
答案 0 :(得分:0)
可能是特定于应用程序的(例如,要加载的宝石数量)。要大大加快Rspec的加载时间,可以使用spring-commands-rspec,它为Spring(Rails应用程序预加载器)实现了rspec命令,例如:
在您的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
答案 1 :(得分:0)
对于任何来这里的人来说,问题在于每次我运行测试时RSpec都会被截断。
我通过在日志启动时检查日志来发现它(tail -f log/test.log
)。
为了解决这个问题,我使用了database_cleaner gem并将其配置为:transaction
作为清理策略。
config.before(:each) do
DatabaseCleaner.strategy = :transaction
end