web-dev-qa-db-fra.com

Comment faire fonctionner Karma avec Chrome

J'ai un Ubuntu 11.04 uniquement en ligne de commande (GNU/Linux 2.6.35.4-rscloud x86_64) et je travaille sur le didacticiel Angular Phonecat qui utilise Karma à des fins de test. La page de configuration du navigateur Karma indique que le programme de lancement de Chrome est "livré avec Karma par défaut".

Mais ça ne marche pas pour moi. Ceci est le karma.conf.js . Ci-dessous la sortie.

 $ ./scripts/test.sh

Starting Karma Server (http://karma-runner.github.io)
-------------------------------------------------------------------
INFO [karma]: Karma v0.10.4 server started at http://localhost:9876/
INFO [launcher]: Starting browser Chrome
ERROR [launcher]: Cannot start Chrome
        Can not find the binary google-chrome
        Please set env variable CHROME_BIN

Cette réponse souligne que j'ai besoin de chrome. 

J'ai donc essayé d'installer Chrome sur mon Ubuntu avec ce guide avec "télécharger la version 64 bits à l'aide de la ligne de commande". Tout s'est bien passé jusqu'au Sudo apt-get -f install, qui s'est terminé par de nombreux "échecs de récupération" d'adresses IP ubuntu, tels que 91.189.91.15 ou 91.189.92.. Même avec/usr/bin/google quelque chose que le "Impossible de trouver le binaire google-chrome" disparaît, j'ai toujours le "Impossible de démarrer Chrome" au niveau de test individuel. Ensuite, en essayant de corriger les erreurs, j'ai supprimé/usr/bin/google quelque chose .

Actuellement, j'ai ces node_modules:

angular-phonecat/node_modules$ ls
karma                      karma-html2js-preprocessor  karma-requirejs
karma-chrome-launcher      karma-jasmine               karma-script-launcher
karma-coffee-preprocessor  karma-junit-reporter
karma-firefox-launcher     karma-phantomjs-launcher

Q 1: Étant donné que ma machine ne dispose que d’un accès en ligne de commande, pas d’interface graphique, l’autre lanceur Karma, PhantomJS, est-il un meilleur choix que Chrome/Chromium?

Q 2: Si je devais quand même utiliser Chrome/Chrome, devrais-je obtenir du Chrome ou du Chrome? 

Q 3: Quelqu'un sait-il exactement de quoi ai-je besoin pour que Google Chrome ou le chrome soient utilisés par Karma afin qu'il fonctionne dans l'application Angular? </ B>

15
Alice

Je vais développer le troisième point de Ludwig pour les demandeurs d’aide et pour ma propre référence dans le futur ...

La première chose à faire est de trouver où chromium-browser est installé. Courir:

which chromium-browser

Cela retournera le chemin vers l'exécutable, ce qui ressemblera à ceci:

/usr/bin/chromium-browser

Ensuite, définissez simplement le chemin:

export CHROME_BIN=/usr/bin/chromium-browser

Maintenant, Karma peut trouver le navigateur dont il a besoin pour exécuter vos tests (en supposant que vous ayez décidé d'utiliser une interface graphique).

25
Daniel Bidulock
  1. Si vous avez uniquement une interface de ligne de commande, PhantomJS est le seul choix pour vous.
  2. Sous Linux (au moins 12,04 et versions antérieures), le chrome est l'alternative. Mais vous ne pouvez pas l’installer si vous n’avez pas d’interface graphique.
  3. La clé est la suivante: "Veuillez définir la variable env CHROME_BIN". Karma essaie d'exécuter un fichier appelé google-chrome et il n'existe pas. Le nom de l'exécutable pour Chrome varie d'un système d'exploitation à l'autre. Par conséquent, vous devez définir une variable d’environnement appelée CHROME_BIN qui porte la valeur du nom de votre exécutable Chrome. Sur mon système (bureau Linux 13.10), il s'agit de chromium-browser.
9
Ludwig Magnusson

Lorsque j’ai mis en place un projet avec le générateur génial angular aujourd’hui, je ne pouvais pas faire fonctionner chrome ou phantomjs avec le karma.

Il s’avère que c’est un problème spécifique à ce projet et que le correctif consiste simplement à ajouter les plugins manquants au package.json à la racine du projet.

1
turtlemonvh