如何发现为什么 RSpec 需要这么长时间才能开始?

How to discover why RSpec is taking so long to start?

我知道有一种方法可以知道哪些规范花费的时间最多,但我怀疑 RSpec 的加载。规范本身并没有花费太多时间,但负载是。
有办法发现吗?
我正在处理 Rails' 遗留代码,但我不知道哪些 gems 会影响它。

可能是特定于应用程序的(例如要加载的宝石数量)。要显着加快 Rspec 加载时间,您可以使用 spring-commands-rspec 实现 Spring 的 rspec 命令(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

对于来到这里的任何人来说,问题是每次我 运行 测试时 RSpec 都会被截断。
我在启动时通过检查日志发现了它 (tail -f log/test.log)。
为了解决这个问题,我使用了 database_cleaner gem 并将其配置为 :transaction 作为清理策略。

config.before(:each) do
    DatabaseCleaner.strategy = :transaction
end