Javascript Jasmine单元测试未在travis上启动

Javascript Jasmine单元测试未在travis上启动,javascript,continuous-integration,jasmine,phantomjs,travis-ci,Javascript,Continuous Integration,Jasmine,Phantomjs,Travis Ci,我想为我的chrome扩展进行持续集成。 使用工具:。 In.travis.yml: 安装凉亭 在鲍尔下载茉莉花 更改my SpecRunner.html上的默认SpecRunner.html,其中包含我的src和规范 在中加载我的SpecRunner.html .travis.yml: runTests.js: 测试应该失败,但travis上的状态-已通过。 为什么我的测试不运行?尝试在脚本:echo$?之后添加,以查看测试的返回值。如果是0,则Travis的行为是正确的 我只是猜测,不管

我想为我的chrome扩展进行持续集成。 使用工具:。 In.travis.yml:

  • 安装凉亭
  • 在鲍尔下载茉莉花
  • 更改my SpecRunner.html上的默认SpecRunner.html,其中包含我的src和规范
  • 在中加载我的SpecRunner.html
.travis.yml:

runTests.js:

测试应该失败,但travis上的状态-已通过。
为什么我的测试不运行?

尝试在脚本:echo$?之后添加
,以查看测试的返回值。如果是
0
,则Travis的行为是正确的

我只是猜测,不管结果如何,您的测试只返回0。根据这段代码,只要尝试打开文件并在失败时调用回调——因为没有not-0-exit回调,整个脚本就会正常退出并通过构建

编辑:

从您编写的内容中,我了解到Travis运行得很好,而不是返回非0值的是
phantomjs./test/runTests.js
。尝试更改:

function(){
  phantom.exit();
}
变成类似于:

function(status){
  if (status === 'success')
    phantom.exit(0);
  else
    phantom.exit(-1);
}

如果构建失败(我假设页面打开总是失败)。

测试结果显示在同一个SpecRunner.html上

要获得结果,需要打印此加载的页面。 如果在phantomjs中本地加载html,则url应该遵循经典的url/Uri规则,特别是对于本地文件(这就是页面未加载的原因):

为了获得测试结果,需要在.travis.yml中的_脚本之后解析日志,如果测试通过,则返回值-0;如果测试失败,则返回非null


另外,可能还有帮助本身jasmine(但我不确定)。

我尝试将
echo$?
添加到
.travis.yml
,但返回0:
travis\u fold:start:after\u script$echo$?0
。我还在回调中尝试了print
document.body
,它的返回空页面Travis正在正确地传递构建-传递的脚本命令总是返回0。假设我建议的更改有帮助。我没有状态,因为我正在本地加载
html
function(){
  phantom.exit();
}
function(status){
  if (status === 'success')
    phantom.exit(0);
  else
    phantom.exit(-1);
}
file:///c:/path/to/the%20file.txt #win
file:///etc/fstab #unix