it-swarm.com.de

Wie Sie Karma dazu bringen, mit Chrome zu arbeiten

Ich habe nur eine Befehlszeile mit Ubuntu 11.04 (GNU/Linux 2.6.35.4-rscloud x86_64) und arbeite durch das Angular Phonecat-Tutorial , das Karma zum Testen verwendet. Die Karma Browser-Konfigurationsseite sagt, dass der Chrome-Launcher "standardmäßig mit Karma ausgeliefert wird".

Aber es funktioniert nicht für mich. Dies ist das karma.conf.js . Unten ist die Ausgabe.

 $ ./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

Diese Antwort weist darauf hin, dass ich Chrom brauche. 

Also habe ich versucht, Chrome auf meinem Ubuntu mit dieser Anleitung mit "64-Bit-Version über Befehlszeile herunterladen" zu installieren. Alles lief gut, bis Sudo apt-get -f install, der mit einer Menge "fehlgeschlagen" von ubuntu IP-Adressen endete, wie 91.189.91.15 oder 91.189.92.. Selbst bei/usr/bin/google etwas *, dass das "Kann das binäre Google-Chrome nicht finden" verschwinden, habe ich immer noch das "Kann Chrome nicht starten" auf der individuellen Testebene. Beim Versuch, Fehler zu beheben, habe ich/usr/bin/google etwas gelöscht.

Momentan habe ich folgende 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

F 1: Da mein Computer nur über eine Befehlszeile verfügt, keine GUI. Ist der andere Karma-Launcher PhantomJS die bessere Wahl als Chrome/Chromium?

F 2: Wenn ich noch Chrom/Chrom verwenden sollte, sollte ich dann Chrom oder Chrom erhalten? 

F 3: Weiß jemand, was genau benötigt wird, um Google-Chrom oder Chrom für Karma in der App Angular zu verwenden? </ B>

15
Alice

Ich werde auf Ludwigs dritten Punkt für Antwortsuchende und für meine eigene Referenz in der Zukunft eingehen ...

Zuerst müssen Sie herausfinden, wo chromium-browser installiert ist. Lauf:

which chromium-browser

Dadurch wird der Pfad zur ausführbaren Datei zurückgegeben, die etwa wie folgt aussieht:

/usr/bin/chromium-browser

Dann einfach den Pfad einstellen:

export CHROME_BIN=/usr/bin/chromium-browser

Jetzt kann Karma den Browser finden, den es zum Ausführen Ihrer Tests benötigt (vorausgesetzt, Sie haben sich für eine grafische Benutzeroberfläche entschieden).

25
Daniel Bidulock
  1. Wenn Sie nur über eine Befehlszeilenschnittstelle verfügen, ist PhantomJS die einzige Wahl für Sie.
  2. In Linux (mindestens 12.04 und älter) ist Chrom die Alternative. Sie können es jedoch nicht installieren, wenn Sie keine grafische Benutzeroberfläche haben.
  3. Der Hinweis ist hier: "Bitte setzen Sie die Env-Variable CHROME_BIN". Karma versucht, eine Datei mit dem Namen google-chrome auszuführen, und diese existiert nicht. Der Name der ausführbaren Datei für Chrome variiert von Betriebssystem zu Betriebssystem. Daher müssen Sie eine Umgebungsvariable namens CHROME_BIN setzen, die den Wert des Namens Ihrer ausführbaren Datei von Chrome enthält. Auf meinem System (Linux-Desktop 13.10) ist dies chromium-browser.
9

Als ich ein Projekt mit the yeoman generator angle heute aufbaute, konnte ich weder Chrom noch Phantomjs dazu bringen, mit Karma zu arbeiten.

Es stellt sich heraus, dass dies ein spezifisches Problem für dieses Projekt ist und der Fix besteht einfach darin, die fehlenden Plugins zur package.json in Ihrem Projektstamm hinzuzufügen.

1
turtlemonvh

Meine Lösung besteht darin, einen Alias ​​in Linux für Windows Chrome zu erstellen

alias launchchrome="\"/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe\""

und exportiere danach diesen alias als linux env variable

export CHROME_BIN=launchchrome

Das war's jetzt, wenn du ng test your windows chrome wird verwendet! In meinem Fall hat es funktioniert. Wenn Sie mit dieser Lösung auf Probleme stoßen, hinterlassen Sie bitte einen Kommentar. Ich bearbeite meine Antwort.

0
Gh111