我想为我的chrome扩展程序进行持续集成。 使用工具:GitHub,Travis,Bower,components-jasmine。 在 .travis.yml :
.travis.yml :
language: node_js
node_js:
- "0.10"
install:
- npm install -g bower
- bower install
- cd $TRAVIS_BUILD_DIR
script:
- mv -f ./test/SpecRunner.html ./vendor/components-jasmine
- phantomjs ./test/runTests.js
runTests.js :
var page = require('webpage').create();
page.open('../vendor/components-jasmine/SpecRunner.html', function(){
phantom.exit();
});
测试应该失败,但是travis的状态 - 传递。 为什么我的测试没有运行?
答案 0 :(得分:1)
尝试将after_script: echo $?
添加到.travis.yml
以查看测试的返回值。如果它是0
,那么特拉维斯的行为是正确的。
我只是猜测你的测试只是返回0而不管结果如何。根据{{3}},这段代码只是尝试打开文件并在失败时调用回调 - 因为没有非-0-exit回调整个脚本正常退出并构建传递。
编辑:
根据你所写的内容,我知道特拉维斯运行得很好,并且它phantomjs ./test/runTests.js
没有返回非0值。尝试改变:
function(){
phantom.exit();
}
成像:
function(status){
if (status === 'success')
phantom.exit(0);
else
phantom.exit(-1);
}
并说它失败了构建(我假设页面打开总是失败)。
答案 1 :(得分:1)
测试结果显示在相同的 SpecRunner.html 。
上要获得结果,需要打印此加载的页面。 如果 html 在本地加载 phantomjs ,则url应该遵循经典的Url / Uri规则,尤其是对于本地文件(这就是未加载页面的原因):
file:///c:/path/to/the%20file.txt #win
file:///etc/fstab #unix
要获得测试结果,需要在 .travis.yml 中的 after_script 中解析日志并返回值 - 如果测试通过则返回0,如果测试失败,则返回非null。
另外,也许,茉莉花可能有帮助(但我不确定)。