Cucumber-js: Как будет работать параллельный вариант с протоколом событий?

Созданный на 5 февр. 2018  ·  9Комментарии  ·  Источник: cucumber/cucumber-js

Пользовательские средства форматирования, которые подключаются только к test-run-finished такие как форматировщик JSON, работают должным образом при распараллеливании, но средства форматирования, которые используют более ранние события, такие как test-(step|case)-started и упорядочены, выводят их выходные данные вне последовательности, что делает структуру выходного документа недействительной. Планируется ли что-нибудь по этому поводу? Можно ли буферизовать вывод по рабочим базам и регистрировать все сразу на главном сервере после завершения?

Самый полезный комментарий

Эта функция нам очень нужна !!!

Все 9 Комментарий

Я думаю, что каждое событие должно содержать достаточно информации, чтобы иметь возможность связать его с предыдущими событиями, а не с буферизацией.

Не уверен, как это будет работать, если будут перехватываться только «конечные» события, так как при этом будет пропущено начало вывода теста. Чтобы использовать в качестве примеров красивое средство форматирования и средства запуска тестов редакторов на основе IntelliJ, они работают следующим образом:

  1. Записывать в журнал заявление об открытии при стартовом событии, в случае довольно - Scenario: Foo , в случае IntelliJ - комментарий в формате TeamCity #teamcity[testStarted]
  2. Запустите тест, который распечатывает собственные журналы после первоначального вывода средства форматирования.
  3. Оператор закрытия журнала для конечного события, 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 ).

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

davidjgoss picture davidjgoss  ·  29Комментарии

mobygeek picture mobygeek  ·  21Комментарии

charlierudolph picture charlierudolph  ·  19Комментарии

peteclark82 picture peteclark82  ·  29Комментарии

charlierudolph picture charlierudolph  ·  33Комментарии