Karma无法捕获PhantomJS

我们已经build立了一个运行Karma目标PhantomJS的Jenkins CI服务器。 我们正在通过Grunt运行我们的testing。 Jenkins,Grunt和Phantom都运行正常,Karma似乎很好,但Karma无法捕捉到Phantom。 我们的脚本在本地运行(OSX)就好了。 通过bash或Jenkins运行同样的错误:

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。

这里是我们运行的版本:grunt-cli v0.1.9 grunt v0.4.1节点0.10.12和0.8.25。 幻影1.9.1业力0.8.6

任何帮助将非常感激!

karma.conf.jsconfiguration文件中使用轮询而不是套接字和绝对path,而不是相对path,以确保目录结构正确遍历并且客户端/服务器连接没有外部依赖关系:

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

参考

  • Karma无法在phantomJS上运行testing用例

  • 在使用公共API时,Karma不能正常退出

  • AngularJS + Socket.IO +因果报应不在果业0.8.5

  • 噶玛亚军无限期地垂悬

  • 不在Jenkins中运行预处理器(Linux)
  • “basePath”是相对于“C:\”而不是configuration文件
  • 噶config.js
  • 伊斯坦布尔/覆盖报告生成LCOV文件与SF参数,而不是绝对path的相对path

在我的情况下添加

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

karma.conf.js就足够了。 真正的问题是一个非常旧的业力版本(0.12)。 现在用1.4。 我不需要CPU消耗轮询。