如何为系统测试禁用 Rails 测试并行化*仅*?

Avd*_*vdi 11 ruby-on-rails

我发现默认的测试并行化使得 chromedriver 测试非常不可靠。但我想保持其他测试并行。

我试过这个application_system_test_case.rb

class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
  parallelize(workers: 1)
  # ...
end
Run Code Online (Sandbox Code Playgroud)

...但它似乎没有覆盖默认值。

我目前正在使用:

PARALLEL_WORKERS=1 rails test:system
Run Code Online (Sandbox Code Playgroud)

...但我正在寻找一种方法将其硬编码到项目中,这样其他人就不必“只知道”总是为系统测试设置该环境变量。

Dor*_*ian 3

我会运行两个单独的进程,例如bin/test

#!/bin/bash

set -e

rails test test/models test/controllers ...

PARALLEL_WORKERS=1 rails test:system
Run Code Online (Sandbox Code Playgroud)

或者也许修复并行运行的系统测试不稳定的根本原因