2

我在我的 rails 项目上运行 parallel_tests gem,失败测试的输出进入文件 tmp/failing_specs.log。问题是该文件的输出格式不适合与“rspec --only-failures”一起使用。

parallel_test 输出文件在我的 .rspec_parallel 文件中定义;

--format progress
--format ParallelTests::RSpec::SummaryLogger --out tmp/spec_summary.log
--format ParallelTests::RSpec::FailuresLogger --out tmp/failing_specs.log

该 failed_specs.log 文件的输出是这样的

Failures:

  1) Create a new debtor, shows the client after creation
     [31mFailure/Error:[0m
     [31m  [0mwithin [31m[1;31m"[0m[31m#phones-input-list[1;31m"[0m[31m[0m [32mdo[0m[0m
     [31m    [0mexpect(page).to have_selector([31m[1;31m"[0m[31mli#phone1[1;31m"[0m[31m[0m, [35mvisible[0m: [1;36mtrue[0m)[0m
     [31m  [0m[32mend[0m[0m
     [31m[0m
     [31mCapybara::ElementNotFound:[0m
     [31m  Unable to find css "#phones-input-list"[0m
     [36m# ./spec/integration/debtors/create_debtor_spec.rb:63:in `block (3 levels) in <top (required)>'[0m
     [36m# ./spec/integration/debtors/create_debtor_spec.rb:59:in `block (2 levels) in <top (required)>'[0m

rspec --only-failures 期望的输出如下所示;

example_id                                                                  | status  | run_time        |
--------------------------------------------------------------------------- | ------- | --------------- |
./spec/controllers/accounts_controller_spec.rb[1:1:1:1:1:1]                 | unknown |                 |
./spec/controllers/accounts_controller_spec.rb[1:1:1:1:1:2]                 | unknown |                 |

我怎样才能让这两个很好地协同工作?

4

1 回答 1

0

由于 parallel_tests 产生单独的 rspec 进程,这些进程中的每一个都会写入同一个文件,这可能会导致冲突。

这就是为什么会有这些ParallelTests::RSpec::[xxx]Logger课程。我想有必要针对这种情况进行具体的实现。我打开了一个问题: https ://github.com/grosser/parallel_tests/issues/699

同时,我认为使用https://github.com/NoRedInk/rspec-retry是您最好的解决方案。

于 2019-05-17T11:03:43.847 回答