2015-03-05 1 views
6

Ich habe AngularJS in meinem Projekt und Karma zu testen. Dann konfiguriert ich Karma wie folgt aus:phantomjs kann nicht starten

config.set({ 
    basePath: '../', 
    frameworks: ['jasmine'], 
    files: [ 
     // bower:js 
     'bower_components/jquery/dist/jquery.js', 
     'bower_components/angular/angular.js', 
     'bower_components/bootstrap/dist/js/bootstrap.js', 
     'bower_components/angular-animate/angular-animate.js', 
     'bower_components/angular-cookies/angular-cookies.js', 
     'bower_components/angular-route/angular-route.js', 
     'bower_components/angular-sanitize/angular-sanitize.js', 
     'bower_components/angular-mocks/angular-mocks.js', 
     // endbower 
     'js/**/*.js', 
     'test/spec/**/*.js' 
    ], 
    browsers: [ 
     'PhantomJS' 
    ], 
    plugins: [ 
     'karma-phantomjs-launcher', 
     'karma-jasmine' 
    ], 
    port: 8890 

}) 

Und grunzen wie folgt aus:

grunt.initConfig({ 
    connect: { 
     testserver: { 
      options: { 
       base: 'js/', 
       hostname: 'localhost', 
       port: '8889' 
      } 
     } 
    }, 
    karma: { 
     unit: { 
      configFile: './test/karma-unit.conf.js', 
      singleRun: true 
     } 
    } 
}); 

grunt.registerTask('test', ['connect', 'karma:unit']); 

Als ich 'Grunzen Test' eingeben, zeigt die Konsole, dass PhantomJS nicht starten:

Running "connect:testserver" (connect) task 
Started connect web server on http://localhost:8889 

Running "karma:unit" (karma) task 
INFO [karma]: Karma v0.12.31 server started at http://localhost:8890/ 
INFO [launcher]: Starting browser PhantomJS 
ERROR [launcher]: Cannot start PhantomJS 

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

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

ERROR [launcher]: PhantomJS failed 2 times (cannot start). Giving up. 
Warning: Task "karma:unit" failed. Use --force to continue. 

Aborted due to warnings. 

Wie kann ich das lösen? Kann mir jemand helfen?

+0

Ist Ihr PhantomJS global installiert? Was sagt Ihre Umgebungsvariable PHANTOMJS_BIN? –

+0

Ich habe das gleiche Problem, meine Ausgabe ist: Fehler [Launcher]: Kann PhantomJS nicht starten \t Fehler: Spawn EACCES –

+0

Related: http://StackOverflow.com/Questions/31966434/Karma-Chrome-Failed-2-times- kann nicht starten-aufgeben/42700178 # 42700178 –

Antwort

5

Installieren Sie libfontconfig. Angenommen, Sie sind auf ubuntu:

sudo apt-get install libfontconfig

Dieses es für mich gelöst.

-1

Wenn Sie den Chrome-Browser auf Ihrem Computer installiert haben, wechseln Sie dorthin.

In Browser-Arrays notieren Sie Chrome statt PhantomJS und verwenden Sie im Plugins-Array karma-chrome-launcher.

Karma-Chrome-Launcher ist als ein weiteres Knotenpaket verfügbar, es sollte installiert werden.

browsers: [ 
     'Chrome' 
    ], 
    plugins: 
     'karma-chrome-launcher', 
     'karma-jasmine' 
    ], 
7

Ich lief auch in diesem, schien ein Problem zu sein, wo sieht Karma-phantomjs2-Launcher für die PhantomJS ausführbar. Es nutzt PHANTOMJS_BIN PhantomJS zu laufen, so dass ich gelöst es so:

export PHANTOMJS_BIN=/usr/local/bin/phantomjs 

Solange Sie zu „PhantomJS“ von der Kommandozeile ausgeführt werden kann und es funktioniert, dass es wahrscheinlich tun sollte.

+1

Ich habe viel Zeit gespart. Vielen Dank! –

+0

Das hat bei mir auf macOS sierra (v10.2) funktioniert. Vielen Dank! – accraze

2

Aktualisieren Sie die Version von karma-phantomjs-launcher auf 1.0.2 in package.json und installieren Sie das Paket erneut.

+1

Arbeitete für mich im Jahr 2017 – mles

0

Vielleicht hilft es jemandem. Ich bekam plötzlich die gleichen Konsolen-Nachrichten ohne gültige Gründe, ich hörte einfach auf zu grunzen und wollte es neu starten.

I NPM deinstalliert Karma und neu installiert Karma.