Пользовательские средства форматирования, которые подключаются только к test-run-finished
такие как форматировщик JSON, работают должным образом при распараллеливании, но средства форматирования, которые используют более ранние события, такие как test-(step|case)-started
и упорядочены, выводят их выходные данные вне последовательности, что делает структуру выходного документа недействительной. Планируется ли что-нибудь по этому поводу? Можно ли буферизовать вывод по рабочим базам и регистрировать все сразу на главном сервере после завершения?
Я думаю, что каждое событие должно содержать достаточно информации, чтобы иметь возможность связать его с предыдущими событиями, а не с буферизацией.
Не уверен, как это будет работать, если будут перехватываться только «конечные» события, так как при этом будет пропущено начало вывода теста. Чтобы использовать в качестве примеров красивое средство форматирования и средства запуска тестов редакторов на основе IntelliJ, они работают следующим образом:
Scenario: Foo
, в случае IntelliJ - комментарий в формате TeamCity #teamcity[testStarted]
pass/fail
summary или ##teamcity[testFinished]
Порядок важен, так как перед всем, что записывает тест, и последующим оператором закрытия, должен быть оператор открытия, и никакой другой тест не должен регистрировать что-либо параллельно с этим, иначе они будут смешивать, какой вывод принадлежит какому тесту. Буферизация, казалось бы, позаботится об этом, поскольку каждый вывод будет изолирован и регистрироваться на главном сервере в атомарной операции.
Мы можем передать опцию isParallel
пользовательским средствам форматирования, чтобы они знали, что вывод данных в событиях test-case-start / test-step будет беспорядочным, и поэтому они должны выводить только события, завершенные тестовым случаем.
Нам нужно больше обсуждения этого вопроса. В настоящее время при использовании любого средства форматирования существует риск сбоя программы запуска огурцов из-за конфликтов ввода-вывода при попытке записи в терминал. Средство форматирования индикатора выполнения было бы идеальным для параллельного бегуна, если бы оно только перемещало полосу, а затем сообщало сводку в конце.
Планируется переход на автономные средства форматирования, которые потребляют поток сообщений от огурца.
См. Дорожную карту и dots-formatter
и pretty-formatter
(WIP) в монорепозитории
Эта функция нам очень нужна !!!
Привет! Есть ли шанс запустить cucumber js параллельно с allure reporter? Когда я пытаюсь запустить с помощью cucumber-js --parallel 2 -t @debug --format reporter.js: ./ dummy.txt, я только что получил TypeError: Cannot read property 'sourceLocation' of undefined
Заранее спасибо!
Та же проблема, что и у @ yevgen-getalo.
Закрытие как v7.0.0 использует новый протокол сообщений, упомянутый выше, где события $THING_started
и $THING_finished
могут быть надежно связаны друг с другом через идентификаторы. В некоторых случаях может помочь объект eventDataCollector.query
(экземпляр @cucumber/query
).
Самый полезный комментарий
Эта функция нам очень нужна !!!