8

Mamy skonfigurowany serwer CI firmy Jenkins z uruchomioną karmą atakującą PhantomJS. Prowadzimy nasze testy przez Grunta. Jenkins, Grunt i Phantom działają poprawnie, a Karma wydaje się dobrze grać, ale Karma nie może uchwycić Phantoma. Nasze skrypty działają lokalnie (OSX). Ten sam błąd występuje przez bash lub przez Jenkins:Karma nie może przechwytywać PhantomJS

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. 

Nasz serwer to CentOS 6.4.

Oto wersje mamy uruchomione: grunt-cli v0.1.9 grunt v0.4.1 węzeł 0.10.12 i 0.8.25. phantomjs 1.9.1 karma 0.8.6

Każda pomoc będzie bardzo ceniona!

+0

Mam zupełnie inną konfigurację od ciebie, ale kiedy dostałem błąd "PhantomJS nie udało się przechwycić", okazało się, że localhost nie mapował do 127.0.0.1. To może wywołać ten błąd. – mcv

Odpowiedz

6

Zastosowanie sondowania zamiast gniazd i bezwzględnych ścieżek zamiast względnych ścieżek w pliku karma.conf.js konfiguracji, aby zapewnić strukturę katalogów jest przesuwany poprawnie, a klient Połączenie/serwer nie ma zależności zewnętrzne:

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'] 
    } 
); 
    }; 

Referencje

0

W moim przypadku dodawania

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

do karma.conf.js było wystarczające. Prawdziwym problemem była bardzo stara wersja karmy (0.12). Teraz z 1.4. Nie potrzebuję procesora pobierającego polling.

Powiązane problemy