Node.js 指定特定测试的节点版本
如果节点版本大于x,是否可以在package.json的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文件并创建了一个
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退出,但没有运行任何测试。