Node.js 指定特定测试的节点版本

Node.js 指定特定测试的节点版本,node.js,bash,mocha.js,travis-ci,Node.js,Bash,Mocha.js,Travis Ci,如果节点版本大于x,是否可以在package.json的test中指定运行某个测试?目前,我正在使用Travis搭配摩卡,我的脚本如下所示: if [node --version > '0.10'] then mocha --harmony ./tests/koa/*.js else mocha ./tests/*.js 我发现似乎可以使用中的if语句,但使用上面的语句只会给我一个错误:--此时版本出乎意料。所以,这并不是我想要做的,但我最终弄乱了.travis.yaml文件并创建了一个

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

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

我发现似乎可以使用中的if语句,但使用上面的语句只会给我一个错误:
--此时版本出乎意料。

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

"scripts": {
    "test": "mocha --harmony ./tests/koa/*.js && mocha ./tests/*.js",
    "0.10": "mocha ./tests/*.js"
}
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
然后,我将.yaml文件编辑为以下内容:

"scripts": {
    "test": "mocha --harmony ./tests/koa/*.js && mocha ./tests/*.js",
    "0.10": "mocha ./tests/*.js"
}
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
在这里,您可以在不同的节点版本中使用测试。当您想使用
--harmony
时,即使您想支持v0.10,这也非常方便,但我相信有更好的方法


编辑:感谢@gniourf\u gniourf为我提供了正确的方向。

您是否刚刚创建了一个名为
0.10]
的文件?请尝试:
如果[[$(节点--版本)>'0.10'];然后是摩卡——harmony./tests/koa/*.js else mocha./tests/*.js;fi
。观察
[[
]
@gniourf\u gniourf我试图比较版本,所以我想要的逻辑是:如果(节点版本大于.10),那么(运行测试x)或者(运行测试y)@gniourf\u gniourf awesome它对Travis有效!(我想)但它在git bash for windows上似乎不起作用。@gniourf_gniourf更正:实际上,它只是以0退出,但没有运行任何测试。