javascript - Jasmine 单元测试未在 travis 上启动

标签 javascript continuous-integration jasmine phantomjs travis-ci

我想对我的 chrome 扩展进行持续集成。 使用工具:GitHub , Travis , Bower , components-jasmine . 在 .travis.yml 中:

  • 安装凉亭
  • bower 下载 jasmine
  • 更改我的 SpecRunner.html 上的默认 SpecRunner.html,其中包含我的 src 和规范
  • phantomjs 中加载我的 SpecRunner.html

.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 上的状态 - 通过。 为什么我的测试不运行?

最佳答案

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

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

file:///c:/path/to/the%20file.txt #win
file:///etc/fstab #unix

要获得测试结果,需要在 .travis.yml 中的 after_script 中解析日志并返回值 - 如果测试通过则为 0,如果测试失败则为非空。

此外,可能借助 jasmine 本身的帮助是可能的(但我不确定)。

关于javascript - Jasmine 单元测试未在 travis 上启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23077422/

相关文章:

angularjs - Karma 在浏览器中显示 Jasmine 测试过的 AngularJs 代码

google-chrome - 引用错误 : expect is not defined

javascript - 如何在 Electron 中使用文件对话框?

javascript - 属性等于选择器在 Safari 5.1.7 中无法识别

javascript - 无法获取组合框的值

javascript - react : pass Component as prop and use it with additional props

python - Travis 脚本退出代码永远不会失败,即使应该失败

apache - gerrit http认证

Jenkins + Gradle + Artifactory 插件(成功的构建和部署 - 失败的最终结果)

javascript - 如何在 Jasmine 中编写以下测试