У меня проблема при запуске моих тестов, покрытие кода не работает, у меня есть сообщение
Информация о покрытии не была собрана, выйдите без записи информации о покрытии
Я пишу свои тесты на ES6 и использую babel для преобразования кода.
Для решения проблемы я использую проект github, представленный в этом обсуждении: https://github.com/gotwarlost/istanbul/issues/496
Уловка состоит в том, чтобы использовать
`babel-node ./node_modules/istanbul/lib/cli cover node_modules/mocha/bin/_mocha -- --require test-helper.js --bail --recursive 'src/js/__tests__/**/*.test.js'`
вместо
"istanbul cover node_modules/mocha/bin/_mocha -- --compilers js:babel-core/register --require scripts/test-helper.js --recursive 'src/js/__tests__/**/*.test.js'"
Он работает хорошо, но проблема в том, что покрытие кода учитывает только те классы, которые вы тестировали, а не все классы, которые вы создали.
Если я добавлю новый класс mod.js
в папку src
проекта, покрытие будет составлять 100% для компонента app.js
. Это логично, потому что он полностью протестирован, но в отчете класс mod.js
не отображается в отчете - он не указан как класс с 0% протестированных (https://github.com/JakeSidSmith/istanbul-no-охват).
Я попытался добавить cover -x 'src/js/__tests__/**/*.test.js'
, но не работает. Я не могу смешивать первый стиль со вторым.
Другая проблема заключается в том, что в приведенном выше примере проекта test-helper.js считается полностью протестированным, и я не могу исключить его из покрытия с помощью cover -x
.
Есть ли еще одна уловка, чтобы получить правильное покрытие кода с помощью ES6 / mocha и вызова mocha babel-core/register
?