gratis - habilitar javascript en chrome en windows
¿Es posible ejecutar Karma sin navegadores? (2)
Inicié una aplicación Angular.js con yo angular
Yeoman que incluye pruebas de Karma. Entonces, la grunt test
ronca falló razonablemente porque Karma no puede encontrar ningún navegador . (Los browsers
no se han establecido en el archivo de configuración node_modules / karma de la aplicación).
Estoy haciendo mi desarrollo a través de SSH en una máquina remota, lo cual creo (hágamelo saber si estoy equivocado) no tiene sentido tener Chrome, /usr/bin/chromium-browser
, instalado.
Entonces, ¿es posible ejecutar Karma sin navegadores?
Karma necesita un navegador para ser configurado.
Puede utilizar PhantomJS en lugar de Chrome.
De hecho, es más discreto que el lanzamiento tradicional de un navegador.
Esta pregunta y respuesta es muy relevante a partir de hoy (próximamente 2018,> angular2, @ angular / cli, mecanografiado, ...).
Aquí hay una pequeña actualización, basada en lo que encontré como útil en la red:
Digamos que tiene un proyecto angular cli
generado que no ha sido moderado. Digamos que quiere usar PhantomJS
para ejecutar sus pruebas angulares2 (nada impactante).
Comience instalando PhantomJS
launcher para Karma en su proyecto
npm i --save-dev karma-phantomjs-launcher
A continuación, debe actualizar el archivo karma.conf.js
la siguiente manera:
Primero las propiedades de los complementos:
plugins: [
require(''karma-jasmine''),
require(''karma-phantomjs-launcher''),
require(''karma-jasmine-html-reporter''),
require(''karma-coverage-istanbul-reporter''),
require(''@angular/cli/plugins/karma'')
],
Luego, las propiedades del navegador
browsers: [ ''PhantomJS'' ],
Al ejecutar la prueba en este momento, probablemente te tropieces con el siguiente error:
PhantomJS 2.1.1 (Windows 7 0.0.0) ERROR
TypeError: pre,template,textarea,script,style is not iterable!
at http://localhost:9876/_karma_webpack_/polyfills.bundle.js:792
Básicamente, eso significa que tu PhantomJS
necesita diferentes polyfills. Descomente las siguientes líneas en su src/polyfills.ts
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'';
Por último, pero no por eso menos importante, aquí están los enlaces que me ayudaron a resolver esto: