Карма-тест с угловым 6

Я пытаюсь запустить тест angular с помощью npm

ng test

но проблема в том, что хром запускается, а не останавливается после завершения теста, поэтому я использовал:

ng test --watch=false

но это вызывает ошибку «Chrome 69.0.3497 (Linux 0.0.0) ERROR», которая приводит к тайм-ауту хрома. Я пытаюсь запустить это на сервере непрерывного развертывания, поэтому эта ошибка вызывает сбой в процессе.


person Mohamed Adel    schedule 08.10.2018    source источник


Ответы (2)


Вы можете избежать этого в системе на основе unix, используя Headless chrome

Это способ запустить браузер Chrome в автономной среде. По сути, запуск Chrome без хрома! Он переносит в командную строку все функции современной веб-платформы, предоставляемые Chromium и механизмом рендеринга Blink.

первый:
настройте karma.conf.js на использование безголового хрома, например, добавив customLaunchers:

...
browsers: ['Chrome'],
customLaunchers: {
    ChromeNoSandboxHeadless: {
       base: 'ChromeHeadless',
       flags: ['--no-sandbox']
    }
 }, 

во-вторых: попросите ваш package.json скрипт использовать вашу конфигурацию для тестирования:

"scripts": {
   ...
    "test": "ng test --browsers=ChromeNoSandboxHeadless",
   ...
  },

затем запустите npm run test или yarn test, и ваши тесты будут работать без открытия браузера. Вы можете открыть отображаемый url в предпочитаемых вами браузерах (Firefox, Chrome, Chrome и т. Д.).

второй способ: вы можете отобразить все свои тестовые случаи в консоли, используя Карма-мокко-репортер

  • Сначала: установите npm install karma-mocha-reporter --save-dev
  • Во-вторых: требуйте, чтобы ваш репортер находился внутри karma.conf.js под plugins, например, require('karma-mocha-reporter'),

Затем добавьте нового репортера mocha в свой массив репортеров: reporters: ['mocha', 'progress', 'kjhtml']

Запустите тест с помощью npm run test или yarn test отобразит отчет в вашей консоли.

другой способ:

в вашем karma.config.json обратите внимание на параметр singleRun (логическое значение по умолчанию - false). Установите true, Karma запустится и захватит все настроенные браузеры, запустит тесты, а затем выйдет с кодом выхода 0 или 1 в зависимости от того, прошли ли все тесты или какие-либо тесты не прошли. Альтернативно, запустите его с флагом npm run test --single-run.

person billyjov    schedule 08.10.2018

В вашем karma.conf.js измените singleRun на true.

singleRun: true
person TheUnreal    schedule 08.10.2018
comment
У меня нет этого файла - person Mohamed Adel; 08.10.2018
comment
Вы проверяли ту же папку, что и ваш package.json? - person TheUnreal; 08.10.2018