#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
, перед написанием отчетов.