объединение отчетов о покрытии Стамбула для интеграционных тестов

#integration-testing #code-coverage #istanbul

#интеграция-тестирование #покрытие кода #istanbul

Вопрос:

У меня есть скелет приложения узла (https://github.com/jedwards1211/crater ) с интеграционными тестами, которые запускают сервер и запускают тесты с помощью webdriver.io . Я не уверен, как сгенерировать полное покрытие кода, потому что необходимо покрыть три части, все они выполняются отдельно:

  • Код, который создает и запускает серверный процесс
  • Код, который выполняется на сервере
  • Код, который выполняется на клиенте (например, PhantomJS)

Я знаю, что могу создать весь этот код, используя babel-plugin-istanbul его для его обработки. И я знаю, что было бы легко запустить сервер nyc и получить покрытие только для кода сервера. Но есть ли какой-либо способ получить объединенный отчет о покрытии для всех трех частей после запуска интеграционного теста?

Что я узнал до сих пор

  • Можно объединить информацию о покрытии, используя: http://gotwarlost.github.io/istanbul/public/apidocs/classes/Collector.html
  • Я должен иметь возможность передавать покрытие из инструментального кода в браузере в тестовые сценарии, запустив (через webdriver.io ): (await browser.execute(() => window.__coverage__)).value

Комментарии:

1. Вы можете использовать размещенный инструмент для объединения всех отчетов, сохраняя целостность каждого отдельного отчета с помощью Codecov . docs.codecov.io/docs/merging-reports и docs.codecov.io/docs/flags сделай свое дело. PS Я могу предоставить подробный ответ ниже, если вы согласны с размещенным решением.

2. @StevePeak ну, к сожалению, я использую комбинезоны. Но я рассмотрю это.

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