Mon package.json ressemble à ceci ..
"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"
ma version npm est 2.2.0
pourquoi est-ce que j'obtiens ceci quand j'exécute le test de karma - karma start my.conf.js
J'avais aussi ce problème avec une ancienne version de node. Si vous ne voulez pas avoir à coder en dur cette variable d'environnement, la mise à jour de votre version de nœud résoudra le problème. Procédez simplement comme suit (instructions OSX):
npm uninstall -g phantomjs
npm cache clean -f
brew upgrade nodejs
rm -rf node_modules
npm install -g YOUR_GLOBAL_DEPENDENCIES
npm install
Edit: instructions mises à jour pour s'assurer qu'il n'y a pas de dépendance globale aux fantômes
Cela semble être un problème avec les versions phantom js runner et phantom js.
https://github.com/karma-runner/karma-phantomjs-launcher/issues/31
Comment j'ai résolu mon problème ..
# 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
J'ai rencontré ce même problème. Le correctif consiste à définir manuellement le PHANTOMJS_BIN
variable pour pointer vers le bon chemin fantôme. D'une manière ou d'une autre, le lanceur de karma essaie de regarder le mauvais chemin défini par PHANTOMJS_BIN
.
Voici ce qui a fonctionné pour moi:
$ 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
tout va bien après ça.
Je supprime tout mon dossier node_modules sous mon projet et lance "npm install". Cela a résolu mon problème.
J'ai rencontré ce problème avec [email protected], où j'avais également installé [email protected].
Il s'avère que phantomjs est obsolète, remplacé par phantomjs-prebuilt.
La désinstallation des deux packages et la réinstallation de phantomjs-prebuilt ont résolu le problème avec karma-phantomjs-launcher:
npm -g remove phantomjs phantomjs-prebuilt
npm -g install phantomjs-prebuilt
J'ai résolu ce problème sur OSX: Supprimer et créer un fichier karma.config.js
en utilisant Sudo.
Ma karma.conf.js
avait cette ligne: process.env.PHANTOMJS_BIN = 'node_modules/karma-phantomjs-launcher/node_modules/.bin/phantomjs';
au sommet. Je viens de réaliser ça! Je l'ai commenté et ça marche
J'ai parfois rencontré le même problème. J'ai un gruntfile.js
et j'avais package.json
où j'ajoute explicitement phantomjs-prebuilt
comme dépendance. Mais mon serveur CI peut parfois exécuter grunt karma
en douceur tout en échouant parfois à réclamer No binary for PhantomJS browser on your platform. Please, set “PHANTOMJS_BIN” env variable
.
J'ajoute donc un grunt task
pour garantir la PHANTOMJS_BIN
variable a été définie avant les tests, puis a résolu le problème gênant.
grunt.registerTask('ensurePhantomJsPath', function () {
process.env.PHANTOMJS_BIN = './node_modules/phantomjs-prebuilt/bin/phantomjs';
console.log(process.env.PHANTOMJS_BIN);
});
Alors finalement, le Gruntfile.js
ressemble à ça:
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']);
eu le même problème, a fait tout ce qui précède, aucun résultat vient de supprimer le dossier 'karma-phantomjs-launcher' du global node_modules et du projet local, appelé 'npm install' et tout va bien!
Exécutez les commandes ci-dessous:
npm remove phantomjs -g
npm remove phantomjs
npm install phantomjs
Une fois que vous avez fait cette installation:
vous obtiendrez un message comme celui-ci:
Linking to global install at /usr/local/lib/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs
Copiez ce chemin et exécutez:
export PHANTOMJS_BIN=/usr/local/lib/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs
Fondamentalement, ce qui se passe est le suivant: le karma essaie de lancer le navigateur mais ne parvient pas à trouver son bac. Une fois que vous avez exporté le chemin vers le bon chemin, il s'exécute.
Ran dans un problème comme celui-ci. Ce que j'ai fait, c'est d'installer les phantomjs globalement npm install -g phantomjs
. Puis je suis allé au karma-phantomjs-launcher
dossier du module et ouvert index.js
fichier. Ensuite, je suis allé à la fonction phantomJSExePath
et j'ai commenté le contenu précédent (je ne sais pas s'il est sûr de faire ce que j'ai fait). Ensuite, j'ai placé
return 'C://Users/user/AppData/Roaming/npm/node_modules/phantomjs/lib/phantom/phantomjs.exe';
M'a évité de retaper l'exportation temporaire.