Rspec提供了便利的能力
通过测试放置focus: true
以使其单独运行。跑步
$bundle exec rspec spec
致力于使此功能正确
但是,仅使用并行规格
$rake parallel:spec
或与宙斯:$zeus rake parallel:spec
根本不起作用,导致以下
ignoring {:focus => true}
为什么呢?我不希望它被忽略!
使用并行规格时是否无法运行单个测试甚至单个文件?试图设置和调试与并行处理有关的错误,但我不想运行整个测试套件来测试修复。
之后指定文件位置,例如
$zeus rake parallel:spec spec/features/testing_questionnaire_submission_spec.rb
也无法正常工作。
答案 0 :(得分:1)
这是一个很好的问题,我在配置中遇到了与parallel_tests相同的问题。由于parallel_tests将文件分解为单独的线程,因此无论如何运行单个文件多线程都没有任何好处。
运行时可以看到:
parallel_rspec spec/models/some_test.rb
它会说1 processes for 1 specs, ~ 1 specs per process
。
因此,如果您想在some_test.rb
中运行单个规范,请对:focus
或it
块使用specify
,然后运行,
rspec spec/models/some_test.rb
or
parallel_rspec spec/models/some_test.rb
没关系。如果你想运行一个spec文件,那就是同一个命令:focus
。
需要修复的问题是,当parallel_rspec
运行并且测试中某处有:focus
时,它应该运行那个规范。相反,它似乎在每个线程中运行每个规范,除了包含:focus
的线程,它只在该线程中运行那个测试。
你可以在这里看到,我认为这个问题不会得到解决:https://github.com/grosser/parallel_tests/issues/114