У меня есть приложение, созданное с create-react-app
и некоторыми тестами пользовательского интерфейса, написанными на Jest + Istanbul.
Я хочу получить покрытие кода этих тестов пользовательского интерфейса.Мне нравится продолжать использовать jest, поскольку я уже использую его для юнит-тестов.
Я бы не хотел выводить create-react-app
, если это вообще возможно.Но я открыт для этого, если нет другого выбора.
То, что я пробовал до сих пор:
в package.json
"scripts": {
"uitest": "react-scripts test --env=jsdom --verbose --testMatch='**/*.ui-test.{js}'",
}
, если я запускаю npm run uitest -- --coverage
^ Я думаю, что в приведенном выше сценарии фиксируются только тесты, а не само приложение.
Как это исправить?
Другие неудачные попытки:
1) Как покрыть файлы React jsx в Стамбуле? - Не применять, поскольку я использую create-react-app
2) https://github.com/facebook/create-react-app/issues/3257 - очевидно, эта функция была предложена, но была отклонена.
3) https://github.com/istanbuljs/puppeteer-to-istanbul/issues/18 - Существует библиотека, называемая кукольником в Стамбул, но она не поддерживает исходные карты.(См. Ссылку для выпуска)
4) Я также посмотрел книгу Node.js Web Development - Четвертое издание о safaribooks - я нашел полезное руководство для Puppeteer, но это не таккажется, чтобы покрыть, покрытие кода.
5) Книга Практическая непрерывная интеграция и доставка на safaribooks - есть раздел, посвященный Puppeteer + Jest-тестированию, ничего не говорит о покрытии кода.
6) Я попытался puppeteer-to-istanbul
-> Мы можем рассчитать покрытие кода для пакета таким образом, он не поддерживает карты-источники.
7) Попытка предложения Enselic, но не смогла заставить его работать.Кажется, что происходит сбой при push
методе внутри пользовательской предустановки при попытке нажать babel-plugin-istanbul
.