运行 在 Travis 上通过 mocha 和 nyc 进行 npm 测试时权限被拒绝-CI

Permission denied when running npm test via mocha and nyc on Travis-CI

我正在为与 Travis-CI 集成的 NodeJS 应用程序设置服务器端。我正在使用 Mocha 和 NYC 来帮助我进行测试。然而,虽然这些测试 运行 在本地很好,但我在 Travis-CI.

上的测试失败了

本地一切正常,没有错误。

Travis-CI输出错误:

> server@1.0.0 test /server
> nyc --reporter=lcov npm run run-test "--coverage"
sh: nyc: Permission denied
npm ERR! Test failed.  See above for more details.
The command "docker run repname/server npm test -- --coverage" exited with 1.

那是我的 .travis.yml 文件:

sudo: required
services:
  - docker
    
before_install:
  - docker build -t repname/server -f Dockerfile.dev .

script:
  - docker run repname/server npm test -- --coverage

我什至尝试了在堆栈上找到的其他一些类似问题: 那就是我没有运气的尝试:

对于纽约:

before_script: chmod 0555 ./node_modules/.bin/nyc

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

对于摩卡:

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

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

我解决了。问题是我没有在 .gitignore 文件中添加正确的路径。所以当我在 github 上推送到 master 时,它实际上推送了 node_modules 文件夹,这是不应该做的。

当你尝试在 Travis CI 或任何 CI 上构建时,请记住这一点,不要将你的模块文件夹放在你的主仓库中。