1

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

也无法工作。

4

1 回答 1

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该规范itspecify块,然后运行,

rspec spec/models/some_test.rb
or
parallel_rspec spec/models/some_test.rb

没关系。如果您想运行单个规范文件,它是相同的命令,只是 no :focus

需要解决的问题是何时parallel_rspec运行并且:focus测试中有某个地方,它应该只运行那个规范。相反,它似乎在每个线程中运行每个规范,除了包含 的线程,:focus它只在该线程中运行一个测试。

你可以在这里看到,我认为这个问题不会得到解决:https ://github.com/grosser/parallel_tests/issues/114

于 2017-03-08T18:37:19.773 回答