Параллельные тесты, не прошедшие тесты для запуска с rspec --only-failures

Я запускаю параллельный тест gem в моем проекте rails с выводом для неудачных тестов в файл 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 ответов

Поскольку параллельные тесты порождают отдельные процессы rspec, каждый из этих процессов записывает в один и тот же файл, что может привести к конфликтам.

Вот почему есть те ParallelTests::RSpec::[xxx]Logger классы. Я полагаю, что для этого случая потребуется конкретная реализация. Я открыл проблему: https://github.com/grosser/parallel_tests/issues/699

Между тем, я думаю, что использование https://github.com/NoRedInk/rspec-retry является вашим лучшим решением.

Другие вопросы по тегам