@sanex3339

Istanbul + Typescript + Mocha — как корректно настроить code coverage?

Настроил связку из Typescript + Mocha, тесты работают, все ок.

Теперь хочу сюда впихнуть Istanbul, и вот тут то проблемы:
Все тесты написаны на TypeScript. Тестируемый код написан на TS, собирается Webpack'ом в 1 файл.
Istanbul запускается командой:
istanbul cover _mocha -- -R spec --require ts-node/register test/**/*.ts


В итоге я получаю сообщение
No coverage information was collected, exit without writing coverage information


Ктонибудь уже настраивал такую связку?
  • Вопрос задан
  • 871 просмотр
Решения вопроса 1
@sanex3339 Автор вопроса
В итоге сделал так:

Для тестов, все .ts файлы (включая тесты) компилятся в tmp директорию, без бандлинга в 1 файл.
В этой директории прогоняем тестовые спеки, которые цепляют скомпиленные .js файлы.
После прогона тестов tmp директорию удаляем.

В итоге все ок, Istabul версии 1.0.0-alpha.2 умеет в source-map, так что он в итоге показывает все на основе оригинальных .ts файлов.

"test:compile": "tsc -p tsconfig-test.json",
    "test:full": "npm run test:compile && istanbul cover _mocha -- test-tmp/test/**/**.spec.js && npm run test:removeTestTmpDir",
    "test:mocha": "npm run test:compile && mocha -- test-tmp/test/**/**.spec.js && npm run test:removeTestTmpDir",
    "test:removeTestTmpDir": "rm -rf test-tmp",
    "test": "npm run test:full",
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы