我在CI环境中运行测试时遇到问题.使用Node v6.0.0 / npm 3.8.6,配置在MacOS 10.11.6(El Capitan)上运行正常,但在运行带有Node v4.2.2 / npm 2.14.7的
Windows的TeamCity 9.1.6代理上,它很糟糕地失败了PhantomJS的错误未在60000毫秒内捕获.
这是TeamCity上的示例堆栈跟踪:
[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 });