javascript - node - karma js tutorial
Karma no ejecuta las pruebas unitarias debido al mensaje "No capturó el navegador" (10)
Estoy intentando configurar Karma para que ejecute las pruebas de unidad AngularJS usando Jasmine, pero no puedo hacer que las pruebas se ejecuten. Estoy seguro de que estoy pasando por alto algo simple. Estoy ejecutando esto en una máquina con Windows 7 con Node.js
instalado y el karma instalado a través de npm
.
Mi estructura de directorio se ve así:
- js / app / - contiene controladores, aplicaciones, etc.
- js / config / - contiene karma.conf.js
- js / lib / - contiene angular
- js / test / - contiene especificaciones de jazmín
Estoy iniciando un símbolo del sistema en el directorio js
y ejecutando este comando:
karma start config/karma.conf.js
Eso hace que Chrome se ejecute en el puerto 9876, pero cada vez que cambio algún archivo y miro la salida de Karma, veo este mensaje de información:
No captured browser, open http://localhost:9876/
Aquí está mi archivo de configuración:
module.exports = function(config) {
config.set({
basePath: ''../'',
frameworks: [''jasmine''],
files: [
''lib/angular.js'',
''app/**/*.js'',
''test/**/*.js''
],
exclude: [
],
reporters: [''progress''],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: [''Chrome''],
captureTimeout: 60000,
singleRun: false
});
};
Estoy usando Angular 1.2.10 y Karma 0.10.9
Estaba enfrentando el mismo problema y lo resolví matando todas las instancias de Chrome del Administrador de tareas. Parece que había ''n'' número de corredores de prueba en ejecución. Cuando cierra el corredor de prueba de karma sin detener el servidor, su instancia todavía está activa.
Así que presione ''alt + ctrl + eliminar'', elimine todas las sesiones / instancias de Chrome y reinicie Karma.
¡Funciona!
Este error puede significar que el navegador no puede encontrar el servidor. Verifica si puedes llegar al servidor en la URL que menciona. Podría ser un número de puerto mal configurado, o incluso (como lo fue en mi caso), el localhost
está mal configurado. Supongo que podría ser el servidor no se está ejecutando, o cualquiera de una docena de otros problemas.
Verifica si puedes acceder al servidor de forma manual. Si no puedes, arregla eso.
Esto me sucedió cuando tuve un ciclo sin fin en mi código. Comentando (usando xdescribe
en jazmín) el código reciente que escribí hizo que las pruebas se volvieran a ejecutar.
Instalando karma-cli npm install -g karma-cli
resolvió este problema para mí. Espero que esto ayude.
Sin embargo, tuve el mismo problema en una configuración diferente (Linux, QUnit, Firefox). El problema desapareció después de que maté todos los procesos de karma e inicié un nuevo karma start
.
Tuve el mismo error recientemente:
- un proyecto que usa
angular-cli
, - pruebas que se ejecutan en Jenkins en un entorno sin cabeza.
Resulta que cancelé un trabajo de Jenkins anteriormente en el paso donde se ejecutaban las pruebas, por lo que la ng test
no finalizó (tenía un puñado de procesos de ejecución ng
, emparejados con [node] <defunct>
, bloqueando la ejecución de la prueba adicional). La solución fue encontrar y eliminar todos los procesos de colgado ng
:
$ sudo -su jenkins # ps aux | grep "ng$" | awk ''{print $2}'' | xargs kill -9
Tuve el mismo problema e hice todo lo que todos dijeron desde aquí sin ningún resultado. En mi caso, no hice el init:
C:/Users>cd c:/xampp/htdocs/angularjs-pro/ch07
c:/xampp/htdocs/angularjs-pro/ch07>karma init
Which testing framework do you want to use ?
Press tab to list possible options. Enter to move to the next question.
> jasmine
Do you want to use Require.js ?
This will add Require.js plugin.
Press tab to list possible options. Enter to move to the next question.
> no
Do you want to capture any browsers automatically ?
Press tab to list possible options. Enter empty string to move to the next question.
> Chrome
La segunda vez que entré en la misma situación fue cuando intenté karma start
con el karma start
en la carpeta equivocada, no donde puse karma init
.
En ambos casos, después de solucionar el problema que obtuve en la consola de viudas:
22 11 2016 14:06:51.697:INFO [karma]: Karma v1.3.0 server started at http://localhost:9876/
22 11 2016 14:06:51.698:INFO [launcher]: Launching browser Chrome with unlimited concurrency
22 11 2016 14:06:51.711:INFO [launcher]: Starting browser Chrome
22 11 2016 14:06:53.936:INFO [Chrome 54.0.2840 (Windows 10 0.0.0)]: Connected on socket /#HnJUQrkRPqtGFa5ZAAAA with id 16058274
Tuve el mismo problema y probé muchas de las soluciones sugeridas que encontré, pero lo que finalmente resolvió para mí fue eliminar la carpeta node_modules y obtener todo lo nuevo a través de la instalación de npm.
mismo problema: Karma - Chrome falló 2 veces (no se puede iniciar). Renunciando
Tuve el mismo problema, no cambié el código, solo volví a ejecutar pruebas que funcionaron hace un mes.
Cuando me escapé de la webstorm
, parecía tomar mucho tiempo capturar el navegador, por lo que me pregunté si se estaba agotando.
Así que intenté configurar el navegador solo para Chrome
(también estaba usando phantomjs
), y esperando. Luego restablecer nuevamente a Chrome
y PhantomJS
, ahora está bien.
Tuve un momento de palma de la cara . karma start
debe ejecutarse en el mismo directorio que su archivo karma.conf.js
.