Получение покрытия для тестов e2e в IntelliJ - PullRequest
0 голосов
/ 17 октября 2018

Я вручную инструментировал свой код, используя: istanbul instrument src --o temp --es-modules --config=.istanbul.yml.

Это мой .istanbul.yml:

instrumentation: excludes: ['*.spec.js'] extensions: ['.js','.jsx']

Как только он инструментирован, язапуск тестов e2e с использованием Selenium внутри IntelliJ с использованием кнопки запуска с покрытием.

Тесты пройдены, но в конце они дают мне только информацию о покрытии файлов * .e2e.js, а не фактический файл * .jsxчто тест e2e выполняется.

Есть идеи?

1 Ответ

0 голосов
/ 17 октября 2018

JavaScript выполняется в браузере, а не тест-раннером.Таким образом, только код, используемый исполнителем теста, включен в покрытие.Вам необходимо набрать код переднего плана, отправить его в браузер и получить покрытие из браузера.

Вот как это может работать с Стамбулом и Селеном:

  1. Введите свой код переднего плана с помощью команды инструмента istanbul.(Насколько я знаю, инструмент istanbul записывает инструментированный код на диск, тогда как крышка istanbul делает все в памяти.)
  2. Вместо отправки оригинального кода JS в браузер, отправьте инструментированный код JS,Действительно, здесь, в Стамбуле, вам не нужно вручную изменять исходный код, чтобы все это работало.Стамбул выполняет почти всю работу за нас в браузере автоматически.

  3. Запустите тесты на основе Selenium и для каждого отдельного драйвера в ваших тестах запустите ловушку, которая отправит результаты покрытия из браузера в процесс тестирования бэкэнда.

  4. Как только вы получите данные покрытия в процессе тестирования, вы можете делать с ними все, что захотите.В этом случае мы отправим HTTP-данные на сервер, который сможет интерпретировать и отобразить результаты покрытия.

  5. И это все!

Читать статью полностью: https://medium.com/@the1mills/front-end-javascript-test-coverage-with-istanbul-selenium-4b2be44e3e98

Статья охватывает всеподробности как его настроить.

...