为特定测试指定节点版本

时间:2015-02-21 23:30:49

标签: node.js bash mocha travis-ci

如果节点版本大于x,是否可以在package.json的test中指定运行某个测试?目前,我正在使用带有mocha的Travis,我的脚本如下所示:

if [node --version > '0.10'] then mocha --harmony ./tests/koa/*.js else mocha ./tests/*.js

我发现似乎可以使用来自here的if语句,但使用上述内容只会给我一个错误:--version was unexpected at this time.

1 个答案:

答案 0 :(得分:2)

所以,它并不是我想做的事情,但我最终弄乱了.travis.yaml文件并创建了一个脚本。首先,我在package.json中创建了一个新脚本,如下所示:

"scripts": {
    "test": "mocha --harmony ./tests/koa/*.js && mocha ./tests/*.js",
    "0.10": "mocha ./tests/*.js"
}

然后我将.yaml文件编辑为以下内容:

language: node_js

node_js:
  - 0.12
  - 0.11
  - 0.10
  - iojs

script:
  nv=$(node -v);
  if [[ $nv != v0.10.36 ]] ; then
    npm test;
  else
    npm run 0.10;
  fi

并且您可以在不同的节点版本中使用您的测试。即使你想支持v​​0.10,当你想使用--harmony时,这非常方便,但我确信有更好的方法。

编辑:@gniourf_gniourf给予我正确方向的信用。