8

Wir haben einen Jenkins CI-Server eingerichtet, auf dem Karma mit PhantomJS läuft. Wir führen unsere Tests durch Grunt. Jenkins, Grunt und Phantom laufen alle korrekt und Karma scheint gut zu starten, aber Karma kann Phantom nicht fangen. Unsere Skripte laufen lokal (OSX) gut. Derselbe Fehler tritt auf, wenn er über bash oder über Jenkins läuft:Karma kann PhantomJS nicht erfassen

Running "karma:jenkins-unit" (karma) task 
[2013-07-03 11:03:12.168] [WARN] config - urlRoot normalized to "/__karma/" 
DEBUG [reporter]: Using reporter "dots". 
DEBUG [reporter]: Using reporter "junit". 
DEBUG [reporter]: Using reporter "coverage". 
INFO [karma]: Karma server started at http://localhost:8084/__karma/ 
INFO [launcher]: Starting browser PhantomJS 
DEBUG [launcher]: Creating temp dir at /tmp/testacular-7720703 
DEBUG [launcher]: phantomjs /tmp/testacular-7720703/capture.js 
INFO [karma]: To run via this server, use "karma run --runner-port 9104" 
... 
WARN [launcher]: PhantomJS have not captured in 60000 ms, killing. 
DEBUG [launcher]: Process PhantomJS exitted with code 0 
DEBUG [launcher]: Cleaning temp dir /tmp/testacular-7720703 
INFO [launcher]: Trying to start PhantomJS again. 
DEBUG [launcher]: Creating temp dir at /tmp/testacular-7720703 
DEBUG [launcher]: phantomjs /tmp/testacular-7720703/capture.js 
WARN [launcher]: PhantomJS have not captured in 60000 ms, killing. 
DEBUG [launcher]: Process PhantomJS exitted with code 0 
DEBUG [launcher]: Cleaning temp dir /tmp/testacular-7720703 
INFO [launcher]: Trying to start PhantomJS again. 
DEBUG [launcher]: Creating temp dir at /tmp/testacular-7720703 
DEBUG [launcher]: phantomjs /tmp/testacular-7720703/capture.js 
WARN [launcher]: PhantomJS have not captured in 60000 ms, killing. 
DEBUG [launcher]: Process PhantomJS exitted with code 0 
DEBUG [karma]: PhantomJS failed to capture, aborting the run. 
DEBUG [launcher]: Disconnecting all browsers 
DEBUG [launcher]: Killing PhantomJS 
DEBUG [launcher]: Cleaning temp dir /tmp/testacular-7720703 
Warning: Task "karma:jenkins-unit" failed. Use --force to continue. 

Unser Server ist CentOS 6.4.

Hier sind die Versionen haben wir laufen: Grunzen-cli v0.1.9 Grunzen v0.4.1 Knoten 0.10.12 und 0.8.25. phantomjs 1.9.1 karma 0.8.6

Jede Hilfe würde sehr geschätzt werden!

+0

Ich habe ein völlig anderes Setup von Ihnen, aber als ich den Fehler 'PhantomJS konnte nicht erfassen' bekam, stellte sich heraus, dass localhost nicht auf 127.0.0.1 abgebildet wurde. Das ist etwas, das diesen Fehler auslösen kann. – mcv

Antwort

6

Verwenden Polling statt Sockets und absolute Pfade anstelle von relativen Pfaden in der karma.conf.js Konfigurationsdatei die Verzeichnisstruktur, um sicherzustellen, werden keine externen Abhängigkeiten korrekt und der Client/Server-Verbindung hat durchlaufen:

module.exports = function(config) 
    { 
    var absolute_root = process.cwd() + '/'; 
    config.set 
    (
    { 
    // https://npmjs.org/browse/keyword/karma-adapter 
    frameworks: ['jasmine'], 

    // list of files 

    files: 
     [ 
     absolute_root + 'test/Spec/**/*.js', 
     absolute_root + 'js/*.js', 
     absolute_root + '../libs/jquery.js' 
     ], 

    usePolling: true, 

    transports: ['xhr-polling', 'jsonp-polling'], 

    browsers: ['PhantomJS'] 
    } 
); 
    }; 

Referenzen

0

In meinem Fall

transports: ['xhr-polling', 'jsonp-polling'] 

zu karma.conf.js Zugabe war ausreichend. Das eigentliche Problem war eine sehr alte Version von Karma (0,12). Jetzt mit 1.4. Ich brauche keine CPU-Abfrage.

Verwandte Themen