【问题标题】:Travis-CI with jasmine-node带有茉莉花节点的 Travis-CI
【发布时间】:2012-09-09 04:44:52
【问题描述】:

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

有什么想法吗?

【问题讨论】:

  • 你有 jasmine-node 作为开发依赖吗?失败的 Travis-CI 测试的输出是什么?因为它是公开的,所以你应该只发布一个测试链接。
  • 其实我刚开始跑步。我现在发布我的答案。
  • 还请注意,您可以使用 --save-dev 标志将开发依赖项添加到您的 package.json。示例:npm install --save-dev jasmine-node
  • @Noah,我可以这样做而不是使用之前的脚本,但是我必须将测试命令更改为 node_modules/jasmine-node/bin/jasmine-node tests/*.spec.js 之类的东西。我不确定哪个是首选。而且我不知道您可以指定在 package.json 中全局安装 dep。
  • 您是想使用全局还是本地开发依赖,这取决于您。我喜欢尽可能地控制东西。因此,在我的项目中,我喜欢在 node_modules 中使用本地二进制文件。我使用 makefile 运行测试并将本地二进制文件的路径指定为 makefile 中的变量。然后在 package.json 中指定 make test 作为 scripts: test 命令。这允许其他人安装您的模块并执行npm test,而无需任何模糊的全局要求

标签: node.js travis-ci jasmine-node


【解决方案1】:

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

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

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

【讨论】:

  • 根据@dan-tao 的建议,将sudobefore_script 中删除
  • 谢谢,这对我有帮助!
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    前段时间我遇到了类似的问题,当时我正在使用 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 集成肯定会为您节省大量的配置时间,而且如果有人想重用您所做的工作,它还可以节省其他人的时间。 ;)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-12
      • 1970-01-01
      • 2015-01-30
      相关资源
      最近更新 更多