2016-11-02 9 views
4

CI環境でテストを実行しているときに問題が発生しました。この設定は、MacOS 10.11.6(El Capitan)のNode v6.0.0/npm 3.8.6では正常に動作しますが、Node v4.2.2/npm 2.14.7のWindowsを実行しているTeamCity 9.1.6エージェントでは、惨めに失敗しますPhantomJS have not captured in 60000 msのエラーです。ここでTeamCity:PhantomJSが60000ミリ秒でキャプチャしていません。

はチームシティーの例のスタックトレースです:

[08:58:40][exec] 02 11 2016 08:58:41.095:DEBUG [config]: autoWatch set to false, because of singleRun 
[08:58:40][exec] 02 11 2016 08:58:41.102:DEBUG [plugin]: Loading plugin karma-jasmine. 
[08:58:40][exec] 02 11 2016 08:58:41.107:DEBUG [plugin]: Loading plugin karma-chrome-launcher. 
[08:58:40][exec] 02 11 2016 08:58:41.121:DEBUG [plugin]: Loading plugin karma-firefox-launcher. 
[08:58:40][exec] 02 11 2016 08:58:41.128:DEBUG [plugin]: Loading plugin karma-phantomjs-launcher. 
[08:58:40][exec] 02 11 2016 08:58:41.263:DEBUG [web-server]: Instantiating middleware 
[08:58:41][exec] 02 11 2016 08:58:41.595:INFO [karma]: Karma v1.3.0 server started at http://localhost:9877/ 
[08:58:41][exec] 02 11 2016 08:58:41.596:INFO [launcher]: Launching browser PhantomJS with unlimited concurrency 
[08:58:41][exec] 02 11 2016 08:58:41.616:INFO [launcher]: Starting browser PhantomJS 
[08:58:41][exec] 02 11 2016 08:58:41.618:DEBUG [temp-dir]: Creating temp dir at E:\TCA\3\temp\buildTmp\karma-47802965 
[08:58:41][exec] 02 11 2016 08:58:41.631:DEBUG [launcher]: E:\TCA\3\work\f900f2fe23d6c9b0\Preview\node_modules\phantomjs-prebuilt\lib\phantom\bin\phantomjs E:\TCA\3\temp\buildTmp\karma-47802965/capture.js 
[08:59:41][exec] 02 11 2016 08:59:41.621:WARN [launcher]: PhantomJS have not captured in 60000 ms, killing. 
[08:59:43][exec] 02 11 2016 08:59:43.624:WARN [launcher]: PhantomJS was not killed in 2000 ms, sending SIGKILL. 
[08:59:45][exec] 02 11 2016 08:59:45.627:WARN [launcher]: PhantomJS was not killed by SIGKILL in 2000 ms, continuing. 
[08:59:45][exec] 02 11 2016 08:59:45.628:DEBUG [launcher]: Process PhantomJS exited with code -1 
[08:59:45][exec] 02 11 2016 08:59:45.629:DEBUG [temp-dir]: Cleaning temp dir E:\TCA\3\temp\buildTmp\karma-47802965 
[08:59:45][exec] 02 11 2016 08:59:45.637:DEBUG [launcher]: PhantomJS failed (timeout). Not restarting. 
[08:59:45][exec] 02 11 2016 08:59:45.638:DEBUG [karma]: Run complete, exiting. 
[08:59:45][exec] 02 11 2016 08:59:45.639:DEBUG [launcher]: Disconnecting all browsers 
[08:59:45][exec] Warning: Task "karma:unit" failed. Use --force to continue. 
[08:59:45][exec] 
[08:59:45][exec] Aborted due to warnings. 
[08:59:45][exec] npm ERR! Test failed. See above for more details. 

はここでpackage.jsonの抜粋です:

"devDependencies": { 
    "bower": "latest", 
    "grunt": "^1.0.1", 
    "grunt-cli": "^1.2.0", 
    "grunt-contrib-jshint": "^1.0.0", 
    "grunt-contrib-watch": "^1.0.0", 
    "grunt-istanbul-coverage": "^0.1.4", 
    "grunt-karma": "^2.0.0", 
    "karma": "^1.3.0", 
    "karma-chrome-launcher": "^2.0.0", 
    "karma-cli": "^1.0.1", 
    "karma-firefox-launcher": "^1.0.0", 
    "karma-jasmine": "^1.0.2", 
    "karma-phantomjs-launcher": "^1.0.2", 
    "jasmine-core": "^2.5.2", 
    "matchdep": "^1.0.1" 
}, 
"scripts": { 
    "postinstall": "node ./node_modules/bower/bin/bower install", 
    "test": "node ./node_modules/.bin/grunt default" 
} 

そして、ここではkarma.conf.jsの抜粋です:

module.exports = function (config) { 
'use strict'; 

config.set({ 
    frameworks: ['jasmine'], 
    plugins: [ 
     'karma-jasmine', 
     'karma-chrome-launcher', 
     'karma-firefox-launcher', 
     'karma-phantomjs-launcher' 
    ], 
    files: [ 
     <...> 
    ], 
    exclude: [], 
    preprocessors: { 
    }, 
    reporters: ['progress'] 
    port: 9877, 
    runnerPort: 9101, 
    colors: true, 
    logLevel: config.LOG_DEBUG, 
    autoWatch: true, 
    browsers: ['PhantomJS'], 
    captureTimeout: 60000, 
    singleRun: true 
}); 
+0

[カルマPhantomJS Githubに関する関連issue](https://github.com/karma-runner/karma-phantomjs-launcher/issues/84)。 – Thunderforge

答えて

2

問題を解決しました! CI環境では、npm installを実行してノードモジュールを取得していません。node_modulesディレクトリをローカルに圧縮し、ソースコードに追加しています。

Macでそれを圧縮し、Windows上で解凍し、それらのモジュールを使用しようとすると、特にphantomjs-prebuiltがキャプチャしていない理由です。

代わりにWindowsから圧縮して、完全に機能しました。

1

私はPhantomJS have not captured in 60000 ms, killing問題をローカルに持っていました。プロジェクトのnode_modulesにダウンロード phatomjs-prebuilt VSクラスパスから入手PhantomJS間

  1. クラッシュ:TERいくつか試して、それはによって引き起こされている可能性があることが判明しました。私はグローバルに利用可能なものを削除しました。
  2. Missing PHANTOMJS_CDNURL環境変数(システム変数)は、Mavenリポジトリを指しており、where to get PhantomJSをチェックします。
+0

@jedizさん、ありがとうございます。ただし、node_modulesにあらかじめ作成されているものを除き、PhantomJSの他のインスタンスはありません。さらに、残念なことに、node_modulesがビルド中に解凍された圧縮されたディレクトリであるため、PhantomJSのダウンロードに問題があるようには見えません。 –

+0

ありがとうございます!あなたの提案1.私のトリックをやった – Tarken

関連する問題