Cucumber.js提供了一个命令行"binary",它是一个.js包含shebang指令的简单文件:
#!/usr/bin/env node
var Cucumber = require('../lib/cucumber');
// ...
Run Code Online (Sandbox Code Playgroud)
package.json使用"bin"配置键指定二进制文件:
{ "name" : "cucumber"
, "description" : "The official JavaScript implementation of Cucumber."
// ...
, "bin": { "cucumber.js": "./bin/cucumber.js" }
// ...
Run Code Online (Sandbox Code Playgroud)
这一切都适用于POSIX系统.有人在Windows上运行Cucumber.js时报告了一个问题.
基本上,该.js文件似乎是通过Windows的JScript解释器(而不是Node.js)执行的,并且由于shebang指令而引发语法错误.
我的问题是:建议在UNIX和Windows系统上运行的"二进制"脚本的推荐方法是什么?
谢谢.
我已经为我的脚本实现了一个测试用例,当我在Webstorm中使用mocha的配置执行它时它运行得非常好.
我的测试脚本的名称是adminTest.js.
现在我喜欢使用npm脚本从控制台或稍后从构建服务器运行它.
因此我在package.json中创建了一个脚本条目
这是完整的文件:
{
"name": "cdh",
"version": "0.0.1",
"description": "CDH connector",
"main": "cdh.js",
"private" : true,
"dependencies": {
"cli-color": "^1.0.0",
"handlebars": "^4.0.3",
"sync-request": "^2.0.1",
"jslint": "^0.9.3",
"xmldom": "^0.1.19",
"xpath": "^0.0.9",
"mocha": "2.3.3 ",
"proxyquire": "1.7.3",
"mocha-sinon": "1.1.4",
"jasmine" : "2.3.2",
"chai" : "3.4.1"
},
"devDependencies": {},
"scripts": {
"test": "node ./node_modules/mocha/bin/mocha tests/**/*Test.js --reporter spec"
},
"author": "kme",
"license": "ISC"
}
Run Code Online (Sandbox Code Playgroud)
当我npm run test从控制台启动脚本时,会导致此错误:
> cdh@0.0.1 test C:\src\trunk\scripts\testing
> node ./node_modules/mocha/bin/mocha tests/**/*Test.js --reporter spec
npm ERR! Windows_NT …Run Code Online (Sandbox Code Playgroud)