我将尝试使用CasperJS和grunt设置testing环境。 一切都按预期工作,testing工作正常。
我只有一个问题。 我必须在terminal中按CTRL + C退出testing。 这是一个很大的问题,当我在Jenkins这样的CI工具中运行这个任务时,因为CasperJS / PhantomJS进程阻塞了咕噜声进程,所以编译永远不会成功。
有没有人有任何想法如何解决这个问题?
卡斯帕试验文件:
var config = require('../../config.json'); casper.test.begin("Testing Homepage QuoteBox", 0, function suite(test){ casper.start(config.url); casper.then(function() {}); casper.then(function() {}); casper.run(function() { test.done(); this.exit(); phantom.exit(); }); });
GruntFile.js:
casper : { yourTask : { options : { test : true, 'log-level' : 'error', 'fail-fast' : true, 'ignore-ssl-errors' : 'yes', 'load-images' : 'no', 'verbose': 'no', concise : true }, files : { 'xunit/casper-results.xml' : [ 'front-end-test/casper/**/*.js' ] } } }
我会检查PATH环境,一切都很好。 如果我用SlimerJS执行casperJS脚本,一切正常。 所以我开始用幽灵来搜索这个问题。 我作为独立应用程序启动了phantomJS,并尝试使用phantom.exit()方法。 结果与在gradle + grunt构建环境中相同。 所以我开始用幻像找到问题,现在我们走了 – 这是发生在你有一个Nvidia GF 620或类似的。 我尝试使用Windows的虚拟机,以及使用Debian Linux和OS X的物理机器进行安装。一切正常。
在幻影1.X版本看来,PhantomJS 2.0解决了这个问题
https://github.com/ariya/phantomjs/issues/10845
或使用谷歌搜索“PhantomJS Nvidia退出”