Node.js 茉莉花结Travis CI

Node.js 茉莉花结Travis CI,node.js,travis-ci,jasmine-node,Node.js,Travis Ci,Jasmine Node,我试图让travis ci用jasmine节点测试我的nodejs模块。当我从命令行运行测试时,它们都通过了,但不管出于什么原因,Travis总是报告我的构建失败。我的.travis.yml看起来像这样: language: node_js node_js: - 0.6 - 0.8 "scripts": { "test": "jasmine-node tests/*.spec.js" } 我的package.json如下所示: language: node_js no

我试图让travis ci用jasmine节点测试我的nodejs模块。当我从命令行运行测试时,它们都通过了,但不管出于什么原因,Travis总是报告我的构建失败。我的.travis.yml看起来像这样:

language: node_js
node_js:
    - 0.6
    - 0.8
"scripts": {
    "test": "jasmine-node tests/*.spec.js"
}
我的package.json如下所示:

language: node_js
node_js:
    - 0.6
    - 0.8
"scripts": {
    "test": "jasmine-node tests/*.spec.js"
}
我已经尝试在travis.yml中添加一个before_脚本

language: node_js
node_js:
    - 0.6
    - 0.8
before_script:
    - "sudo npm i -g jasmine-node"

有什么想法吗

在花了一段时间处理之后,看起来这只是我的.travis.yml文件的格式问题。我的文本编辑器正在插入选项卡,yaml似乎只要求您使用空格。我还为每件事添加了引号

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

language: node_js
node_js:
    - "0.6"
    - "0.8"
before_script:
    - "npm i -g jasmine-node"

不久前,我遇到了一个类似的问题,当时我正在使用jasmine node-g,因为它是一个简单的kata,我认为没有必要在文件夹中添加package.json,但是当我开始将同一个项目与travis ci集成时,为了能够配置它,我费了很大的劲

随着时间的推移,我了解到最好保持整洁,使用友好的package.json而不是全局安装(这里有一篇很好的帖子,比如:)

我的建议是将jasmine节点添加到package.json中,如下面所示

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

不仅使用travis ci集成,而且还可以节省其他人的时间,以防有人想重用您所做的工作。;)

这是一个存储库,其中有一个travis构建启动的工作示例
jasmine节点
测试:


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

您是否将jasmine节点作为开发依赖项?失败的Travis CI测试的输出是什么?你应该发一个链接到测试,因为它是公开的。实际上我刚刚开始运行。我现在发布我的答案。还要注意,您可以使用--save dev标志将开发依赖项添加到package.json中。示例:
npm安装--save dev jasmine node
@Noah,我可以这样做,而不是使用before脚本,但是我必须将test命令更改为类似于
node\u modules/jasmine node/bin/jasmine node tests/*.spec.js
的内容。我不确定哪一个更可取。我不知道您可以指定在package.json中全局安装一个dep。如果您想使用全局或本地dev依赖项,则由您决定。只要可能,我喜欢把东西放在里面。因此,在我的项目中,我喜欢在node_模块中使用本地二进制文件。我使用makefile来运行测试,并将本地二进制文件的路径指定为makefile中的变量。然后在package.json中指定
maketest
作为脚本:test命令。这允许其他人安装您的模块并执行
npm测试
,而无需任何含糊的全局要求来删除
sudo
,就像@dan taook建议的那样,这对我很有帮助!