我在我的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
failing_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 | |
如何让这两者很好地协同工作?
答案 0 :(得分:0)
因为parallel_tests产生了单独的rspec进程,所以这些进程中的每个进程都会写入同一文件,这可能会导致冲突。
这就是为什么有那些ParallelTests::RSpec::[xxx]Logger
类的原因。
我想对于这种情况有必要有一个特定的实现。
我已经打开一个问题:
https://github.com/grosser/parallel_tests/issues/699
同时,我认为使用https://github.com/NoRedInk/rspec-retry是最好的解决方案。