10

我正在尝试让 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"

有任何想法吗?

4

3 回答 3

10

在使用travis-ci lint 网络应用程序一段时间后,看起来它只是归结为我的 .travis.yml 文件中的格式问题。我的文本编辑器正在插入制表符,似乎 yaml 要求您只使用空格。为了更好地衡量,我还在所有内容周围添加了引号。

现在看起来像这样,在确保我只使用单个空格和换行符之后:

language: node_js
node_js:
    - "0.6"
    - "0.8"
before_script:
    - "npm i -g jasmine-node"
于 2012-09-10T05:07:32.123 回答
1

这是一个存储库,其中包含 travis 构建启动jasmine-node测试的工作示例:https ://github.com/yosethegame/yosethegame 。

请注意,package.json声明了jasmine-nodetravis 将在其 npm install 阶段安装的依赖项。

于 2014-10-17T19:17:11.453 回答
0

前段时间我遇到了类似的问题,当时我正在使用 jasmine-node -g 并且由于它是一个简单的 kata 我认为不需要在文件夹中添加 package.json ,但是当我开始集成它时与 travis-ci 相同的项目,我经历了地狱才能配置它。

随着时间的推移,我了解到最好保持良好和紧凑并使用友好的 package.json 而不是全局安装(这里有一篇很好的帖子讨论它,例如:Why to Avoid global test runners

我的建议是让你将 jasmine-node 添加到 package.json 中,就像这样短

{
    "name" : "XXX",
    "version" : "1.0.0",
    "devDependencies" : {
        "jasmine-node" : "latest"
    },
    "scripts" : {
        "test" : "jasmine-node specs/*spec.js"
    }  
}

不仅通过 travis-ci 集成肯定会为您节省大量的配置时间,而且如果有人想要重用您所做的事情,它还可以节省其他人的时间。;)

于 2014-10-12T10:19:02.483 回答