我正在尝试让travis-ci用jasmine-node测试我的nodejs模块。当我从命令行运行测试时,它们都会通过,但无论出于何种原因,Travis总是将我的构建报告为失败。我的.travis.yml看起来像这样:
language: node_js
node_js:
- 0.6
- 0.8
我的package.json看起来像这样:
"scripts": {
"test": "jasmine-node tests/*.spec.js"
}
我尝试将一个before_script添加到我的travis.yml
language: node_js
node_js:
- 0.6
- 0.8
before_script:
- "sudo npm i -g jasmine-node"
有什么想法吗?
答案 0 :(得分:10)
花了一些时间在travis-ci lint web app之后,看起来它只是归结为我的.travis.yml文件中的格式化问题。我的文本编辑器正在插入标签,看起来yaml要求您只使用空格。我还在所有内容中添加了引用,以便做好准备。
现在看起来像这样,确保我只使用单个空格和换行符:
language: node_js
node_js:
- "0.6"
- "0.8"
before_script:
- "npm i -g jasmine-node"
答案 1 :(得分:1)
这是一个存储库,其中包含travis构建启动jasmine-node
测试的工作示例:https://github.com/yosethegame/yosethegame。
请注意,package.json
声明了travis将在其npm安装阶段安装的jasmine-node
依赖项。
答案 2 :(得分:0)
前段时间我有类似的问题,我当时正在使用jasmine-node -g,因为它是一个简单的kata,我认为不需要在文件夹中添加package.json,但是当我搬家的时候为了将相同的项目与travis-ci集成,我经历了地狱,以便能够配置它。
随着时间的推移,我已经知道最好保持良好和紧密,并使用友好的package.json而不是全局安装(这里有一篇很好的帖子谈论它,例如:Why to avoid global test runners)< / p>
我的建议是将jasmine-node添加到package.json中,这个就像这样简短
{
"name" : "XXX",
"version" : "1.0.0",
"devDependencies" : {
"jasmine-node" : "latest"
},
"scripts" : {
"test" : "jasmine-node specs/*spec.js"
}
}
肯定会让您头疼,并且不仅可以通过travis-ci集成来节省大量时间,而且还可以节省别人的时间,以防有人想要重复使用您已经完成的工作。 ;)