8

我們已經建立了一個運行Karma目標PhantomJS的Jenkins CI服務器。我們正在通過Grunt運行我們的測試。 Jenkins,Grunt和Phantom都運行正常,Karma似乎很好,但Karma無法捕捉到Phantom。我們的腳本在本地運行(OSX)就好了。同樣的錯誤存在通過bash或通過詹金斯運行:Karma無法捕捉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. 

我們的服務器是CentOS的6.4。

下面是我們運行的版本: 咕嚕-CLI v0.1.9 咕嚕v0.4.1 節點0.10.12和0.8.25。 phantomjs 1.9.1 業力0.8.6

任何幫助將不勝感激!

+0

我有一個完全不同的設置,但是當我得到'PhantomJS未能捕獲'錯誤時,事實證明本地主機沒有映射到127.0.0.1。這可能會引發此錯誤。 – mcv

回答

6

使用輪詢代替插座和絕對路徑而不是karma.conf.js配置文件中的相對路徑,以確保目錄結構被正確遍歷和客戶機/服務器連接沒有外部依賴:

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

參考

0

在我的情況下加

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

karma.conf.js就足夠了。真正的問題是一個非常舊的業力版本(0.12)。現在用1.4。我不需要CPU消耗輪詢。