Comme une réponse plus complète, basée sur William Hampshire's, Cugas'commentaire et mes ajouts.
Réponse courte: à l'aide de ChromeHeadless
Vous pouvez simplement utiliser sans Tête de Chrome:
ng test --browsers ChromeHeadless
Vous avez besoin d'avoir Chrome 59+.
Mais si vous avez besoin de PhantomJS (et/ou chaning la valeur par défaut ng test
comportement sans arguments) lire la suite.
Plus réponse: l'utilisation de PhantomJS
EDIT: sachez que PhantomJS projet a été archivé, voir ce fil de discussion.
Le programme d'installation
Afin de pouvoir (éventuellement) l'exécution de vos tests sans un navigateur, à l'aide de PhantomJS, vous devriez:
1) Installer quelques dépendances:
npm install --save-dev karma-phantomjs-launcher
npm install --save intl
2) Ajouter PhantomJS pour le Karma de la liste des plugins
Ouvrez karma.conf.js
et ajouter require('karma-phantomjs-launcher')
de la plugins
tableau, par exemple:
module.exports = function (config) {
config.set({
basePath: '',
frameworks: ['jasmine', '@angular/cli'],
plugins: [
require('karma-jasmine'),
require('karma-chrome-launcher'),
require('karma-phantomjs-launcher'),
// ...
],
3) de Permettre à polyfills
Ouvrez votre src/polyfills.ts
le fichier et décommentez les lignes suivantes:
NAVIGATEUR POLYFILLS
import 'core-js/es6/symbol';
import 'core-js/es6/object';
import 'core-js/es6/function';
import 'core-js/es6/parse-int';
import 'core-js/es6/parse-float';
import 'core-js/es6/number';
import 'core-js/es6/math';
import 'core-js/es6/string';
import 'core-js/es6/date';
import 'core-js/es6/array';
import 'core-js/es6/regexp';
import 'core-js/es6/map';
import 'core-js/es6/weak-map';
import 'core-js/es6/set';
DEMANDE D'IMPORTATIONS
import 'intl';
import 'intl/locale-data/jsonp/en';
Comment faire pour exécuter les tests
En précisant les navigateurs lors de l'exécution de la commande
Non, vous pouvez exécuter le test à l'aide de Chrome
(le angulaires-cli par défaut):
ng test --browsers Chrome
Ou PhantomJS (sans tête):
ng test --browsers PhantomJS
Changer le comportement par défaut de juste ng test
Il est possible de changer le comportement par défaut de ng test
(donc quand n --browsers
argument est fourni) en modifiant la valeur de l' browsers
tableau en karma.conf.js
.
Il peut maintenant être mis à l'utiliser Chrome
(par défaut angulaire de la cli d'installation):
browsers: ['Chrome'],
ou PhantomJS
:
browsers: ['PhantomJS'],
ou même les deux:
browsers: ['Chrome', 'PhantomJS'],