phantomjs - see - karma istanbul coverage
NingĂșn binario para el navegador PhantomJS en su plataforma. Por favor, establezca la variable de env "PHANTOMJS_BIN" (11)
Mi package.json se ve así ...
"karma-phantomjs-launcher": "^0.1.4",
"karma-safari-launcher": "^0.1.1",
"karma-sinon-chai": "~0.2.0",
"karma-spec-reporter": "~0.0.16",
"mocha": "~1.20.1"
mi versión npm es 2.2.0
¿Por qué recibo esto cuando ejecuto la prueba de karma? karma start my.conf.js
Ejecute los siguientes comandos:
npm remove phantomjs -g
npm remove phantomjs
npm install phantomjs
Una vez que hagas esta instalación:
Recibirá un mensaje como el siguiente:
Linking to global install at /usr/local/lib/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs
Copia este camino y ejecuta:
export PHANTOMJS_BIN=/usr/local/lib/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs
Básicamente, lo que está sucediendo es: karma está intentando iniciar el navegador pero no puede encontrar su ubicación. Una vez que exporta la ruta a la ruta correcta, se ejecuta.
Esto parece ser un problema con las versiones phantom js runner y phantom js.
https://github.com/karma-runner/karma-phantomjs-launcher/issues/31
Cómo solucioné mi problema ...
//install
npm install -g karma-phantomjs-launcher
//temporary path.. set the path
export PHANTOMJS_BIN=/usr/local/lib/node_modules/karma-phantomjs-launcher/node_modules/phantomjs/lib/phantom/bin/phantomjs
karma start my.conf.js
Me encontré con el mismo problema a veces. Tengo un gruntfile.js
y tuve package.json
donde phantomjs-prebuilt
explícitamente phantomjs-prebuilt
como dependencia. Pero mi servidor de CI a veces puede ejecutar grunt karma
sin problemas, mientras que a veces falla en reclamar No binary for PhantomJS browser on your platform. Please, set “PHANTOMJS_BIN” env variable
No binary for PhantomJS browser on your platform. Please, set “PHANTOMJS_BIN” env variable
.
Así que agrego una grunt task
PHANTOMJS_BIN
para asegurar que la variable PHANTOMJS_BIN
se haya establecido antes de que se ejecute la prueba y luego se resolvió el problema molesto.
grunt.registerTask(''ensurePhantomJsPath'', function () {
process.env.PHANTOMJS_BIN = ''./node_modules/phantomjs-prebuilt/bin/phantomjs'';
console.log(process.env.PHANTOMJS_BIN);
});
Así que finalmente el Gruntfile.js
ve así:
grunt.registerTask(''ensurePhantomJsPath'', function () {
process.env.PHANTOMJS_BIN = ''./node_modules/phantomjs-prebuilt/bin/phantomjs'';
console.log(process.env.PHANTOMJS_BIN);
});
grunt.registerTask(''test'', [''ensurePhantomJsPath'', ''karma'']);
Me encontré con este mismo problema. La solución es configurar manualmente la variable PHANTOMJS_BIN
para que apunte a la ruta de acceso phantomjs correcta. De alguna manera, el PHANTOMJS_BIN
karma intenta ver la ruta incorrecta establecida por PHANTOMJS_BIN
.
Esto es lo que funcionó para mí:
$ echo $PHANTOMJS_BIN
/ usr / local / lib / node_modules / karma-phantomjs-launcher / node_modules / phantomjs / lib / phantom / bin / phantomjs
$ export PHANTOMJS_BIN=/usr/local/lib/node_modules/phantomjs/lib/phantom/bin/phantomjs
$ grunt test
todo esta bien despues de eso
Me encontré con este problema con [email protected], donde también había instalado [email protected].
Resulta que phantomjs está en desuso, reemplazado por phantomjs-prebuilt.
Desinstalar ambos paquetes y reinstalar phantomjs-prebuilt solucionó el problema con karma-phantomjs-launcher:
npm -g remove phantomjs phantomjs-prebuilt
npm -g install phantomjs-prebuilt
Me encontré con un problema como este. Lo que hice fue instalar el phantomjs global npm install -g phantomjs
. Luego fui a la carpeta del módulo karma-phantomjs-launcher
y abrió el archivo index.js
. Luego fui a la función phantomJSExePath
y comenté los contenidos anteriores (no estoy seguro si es seguro hacer lo que hice). Luego coloqué
return ''C://Users/user/AppData/Roaming/npm/node_modules/phantomjs/lib/phantom/phantomjs.exe'';
Me salvó de volver a escribir la exportación temporal.
Mi karma.conf.js
tenía esta línea: process.env.PHANTOMJS_BIN = ''node_modules/karma-phantomjs-launcher/node_modules/.bin/phantomjs'';
en la cima. ¡Me acabo de dar cuenta de eso! Lo comenté, y funciona.
Quito todas las carpetas de node_modules de mi proyecto y ejecuto "npm install". Esto solucionó mi problema.
También estaba teniendo este problema con una versión anterior del nodo. Si no desea tener que codificar esta variable de entorno, la actualización de su versión de nodo resolverá el problema. Solo haz lo siguiente (instrucciones OSX):
npm uninstall -g phantomjs
npm cache clean -f
brew upgrade nodejs
rm -rf node_modules
npm install -g YOUR_GLOBAL_DEPENDENCIES
npm install
Edición: instrucciones actualizadas para asegurarse de que no hay una dependencia de phantomjs global
tuvo el mismo problema, todo lo anterior, ningún resultado eliminó la carpeta ''karma-phantomjs-launcher'' de los node_modules globales y el proyecto local, llamado ''npm install'' y todo está bien!
karma.config.js
este problema en OSX: eliminar y crear el archivo karma.config.js
usando sudo.