2016-04-06 6 views
1

Ich arbeite gerade durch diese AngularJS-Tutorial (https://docs.angularjs.org/tutorial/) und habe ein interessantes Problem beim Versuch, Unit-Tests mit 'npm Test' zu laufen. Dies wird in Schritt 2 des Lernprogramms() beschrieben.AngularJS npm Test (Karma) Remote-Server-Befehlszeile

Mein Setup ist wie folgt:

Problem anzuzeigen: Das Tutorial beschreibt Unit-Tests und sagt, diese mit dem Befehl 'npm test' auszuführen. Dadurch wird entweder der Chrome- oder der Firefx-Browser geöffnet und die Tests ausgeführt. So weit, ist es gut. Aber: Wenn ich den Befehl 'npm test' in meiner Putty ssh-Shell ausführe, gibt es (offensichtlich) kein Chrome- oder FF-Browserfenster, das geöffnet werden kann. Daher habe ich diesen Fehler:

[email protected]:~/Code/angular-phonecat$ npm test 

> [email protected] pretest /home/vagrant/Code/angular-phonecat 
> npm install 

npm WARN install:[email protected] EPROTO: protocol error, symlink '../nopt/bin/nopt.js' -> '/home/vagrant/Code/angular-phonecat/node_modules/.bin/nopt' 

> [email protected] postinstall /home/vagrant/Code/angular-phonecat 
> bower install 


> [email protected] test /home/vagrant/Code/angular-phonecat 
> node node_modules/karma/bin/karma start test/karma.conf.js 

INFO [karma]: Karma v0.12.37 server started at http://localhost:9876/ 
INFO [launcher]: Starting browser Chrome 
ERROR [launcher]: No binary for Chrome browser on your platform. 
    Please, set "CHROME_BIN" env variable. 
INFO [launcher]: Starting browser Firefox 
ERROR [launcher]: Cannot start Firefox 

INFO [launcher]: Trying to start Firefox again (1/2). 
ERROR [launcher]: Cannot start Firefox 

INFO [launcher]: Trying to start Firefox again (2/2). 
ERROR [launcher]: Cannot start Firefox 

ERROR [launcher]: Firefox failed 2 times (cannot start). Giving up. 

Beachten Sie, dass dies nicht die gleichen wie die Art von Problemen in dieser Stellen gemeldet:

Setting environment variable for CHROME_BIN does not work

How to fix error "Please set env variable CHROME_BIN" when running Angular.js with grunt

Diese Stellen (und es Andere können davon ausgehen, dass das npm-Testtool (Karma?) auf einem Windows-Computer verwendet wird, auf dem Chrome und FF installiert sind. Aber ich melde mich remote bei einem Ubuntu-Rechner an, auf dem FF installiert ist und die Umgebungsvariable FIREFOX_BIN korrekt gesetzt ist (/ usr/bin/firefox), aber ich kann kein visuelles Fenster öffnen, weil ich über eine commend-Zeilenshell läuft.

Also meine Frage ist: Wie kann ich npm Test (oder Karma) verwenden, um meine Komponententests mit dem oben beschriebenen Setup zu starten?

Leider weiß ich nicht, wie ich meine Frage stellen oder das Problem besser angeben kann. Wenn Sie also weitere Informationen benötigen, lassen Sie es mich bitte wissen.

Dank

AHL

Antwort

3

Statt Tests auf Chrome/Firefox laufen, laufen sie gegen PhantomJS, einen Headless Browser.

npm install --save-dev phantomjs-prebuilt karma-phantomjs-launcher 

In Ihrem karma.conf.js:

  • zu den Plugins, fügen karma-phantomjs-launcher
  • statt browsers: ['Chrome']browsers: ['PhantomJS'] gesetzt

Sie müssen auch einige polyfills für PhantomJS hinzufügen (das ist fehlt die bind Funktion), dafür verwenden Sie: https://www.npmjs.com/package/phantomjs-polyfill (es wird erklärt, wie man verwendet es mit Karma)

Verwandte Themen