Node.js 在Travis CI上通过mocha运行npm测试时,权限被拒绝

Node.js 在Travis CI上通过mocha运行npm测试时,权限被拒绝,node.js,mocha.js,travis-ci,Node.js,Mocha.js,Travis Ci,我正在建立一个简单的NodeJS应用程序,我正在与travisci集成。我用摩卡咖啡来帮助我做测试。然而,尽管这些测试在本地运行良好,但在部署到Openshift之前,我在Travis CI上的测试失败了。帮我弄明白这一点会很酷=) Travis CI输出 CAT@0.0.1 test /home/travis/build/melvrickgoh/CAT > mocha test/ sh: 1: mocha: Permission denied npm ERR! Test failed.

我正在建立一个简单的NodeJS应用程序,我正在与travisci集成。我用摩卡咖啡来帮助我做测试。然而,尽管这些测试在本地运行良好,但在部署到Openshift之前,我在Travis CI上的测试失败了。帮我弄明白这一点会很酷=)

Travis CI输出

CAT@0.0.1 test /home/travis/build/melvrickgoh/CAT
> mocha test/ 
sh: 1: mocha: Permission denied
npm ERR! Test failed.  See above for more details.
npm ERR! not ok code 0
这就是我的包中的内容。json

"scripts": {
    "start": "node app.js --websocket-port=$OPENSHIFT_NODEJS_PORT --log-level=1",
    "test": "mocha test/ "
  },

在尝试运行测试时,OpenShift上也存在同样的问题。通过使mocha文件可执行来解决此问题,如下所示:

chmod 0777 /var/lib/openshift/53ef9c315973cabb00034c/app-root/runtime/repo/node_modules/.bin/mocha

同样的问题,将此添加到我的
.travis.yml
中,这为我修复了它:

before_script: chmod 0777 ./node_modules/.bin/mocha

我遇到了同样的问题,mocha作为开发人员依赖项安装

我可以通过卸载然后重新安装mocha来解决这个问题:

npm uninstall --save-dev mocha
然后


也许你也可以对全球安装的摩卡进行同样的操作,但我没有亲自测试。

travis的东西有适当的权限吗?嗯,我不太确定这些权限是在哪里找到的。有什么地方可以看吗?或者设置它的方法?标准文件权限,例如您使用
chmod
设置。我刚刚使用CYGNIX的chmod设置了对包含mocha.exe的.bin文件的全局写入和可执行权限。不幸的是,我的Travis CI帐户似乎已停止响应。我会等一下,告诉你它是否有效。我正在使用Windows for dev hereHi,即使将权限设置为全局写入和可执行,我的Travis构建仍然失败/cygdrive/../GitHub/CAT/node_modules/.bin$ls-dl drwxrwxrwx+1这是一个有点分析性的保留,但如果你像我一样,你会使用
0555
,如果不是更低的话。
npm install --save-dev mocha