我正在尝试使用 rspec 和 Rails 6 进行并行测试。 根据他们的文档,只需要添加 PARALLEL_WORKERS=15 ,其中 15 是工人数量。但是,这适用于测试用例,而不适用于 rspec。
有人找到了让它与 rspec 一起使用的解决方案吗?
https://edgeguides.rubyonrails.org/testing.html#parallel-testing
RSpec 不支持 Rails 6 内置并行测试。
https://oozou.com/blog/running-specs-in-parallel-before-rails-6-84
#rspec #rubyonrails #rails6
RSpec
本身不提供对并行测试执行的内置支持。并行化 RSpec
测试通常需要额外的 gems 或 tools 才能实现。然而,可用的特定工具和技术可能从那时起就已经发生了演变。
您可以遵循以下通用方法在 Rails 6 应用程序中并行化
RSpec
测试:
使用并行测试 Gem:
parallel_tests
gem 是 Rails 应用程序中并行测试套件的流行选择。它与 RSpec 配合使用,可以将您的 RSpec 测试分配给多个工作人员。
要使用它,请将宝石添加到您的
Gemfile
:
gem 'parallel_tests'
然后,运行
bundle install
安装 gem。
配置并行测试:安装gem后,需要生成并配置并行测试任务。运行以下命令生成必要的配置文件:
rails generate parallel_tests:install
这将创建像
config/database.yml
和 config/initializers/parallel_tests.rb
这样的配置文件。确保根据您的应用程序设置检查和调整这些文件。
运行并行 RSpec 测试:您现在可以使用
parallel_tests
命令并行运行 RSpec 测试。例如,要在 15 个工作线程中运行 RSpec 测试,您可以使用:
bundle exec parallel_rspec -n 15
此命令会将您的 RSpec 测试套件分为 15 个分区并同时运行它们。
请记住,并行测试可能会对您的测试环境设置、测试数据库和依赖项产生影响,因此可能需要进行彻底的测试和配置调整,以确保可靠的并行测试执行。