由于在项目子文件夹中找不到Mocha,Travis构建失败

时间:2018-11-05 02:17:22

标签: javascript node.js mocha travis-ci

对于我的github项目,使用Travis CI出现以下编译错误:

sh: 1: mocha: not found

我的主项目文件夹“ projectRoot”(对应于我的github存储库)包含.travis.yml配置文件;它还包含几个子文件夹(每个应用程序一个):

projectRoot
|-- app1
    |-- app1.js
    |-- package.json
    |--- node_modules
         |--- .bin
              |--- mocha
              |--- mocha.cmd
|-- app2
    |-- app2.js
    |-- package.json
    |--- node_modules
         |--- .bin
              |--- mocha
              |--- mocha.cmd
|-- app3
|-- ...

每个应用程序都有其自己的package.json和node_modules软件包。

app1的package.json包含以下内容:

  "scripts": {
    "test": "mocha"
  },
  "devDependencies": {
    "chai": "^4.2.0",
    "mocha": "^5.2.0"
  },

当Travis CI尝试运行app1的单元测试时,出现以下错误:

$ npm test
> projectRoot@1.0.2 test /home/travis/build/username/projectRoot/app1
> mocha
sh: 1: mocha: not found
npm ERR! Test failed.  See above for more details.

我尝试添加以下before_script将当前目录更改为app1,然后在开始测试之前修改PATH变量:

before_script:
  - echo "*** PRE BUILD SCRIPT ***"
  - cd ./app1
  - export PATH=$(pwd)/node_modules/.bin:$PATH
  - echo $PATH
  - echo "*************************"

这样做之后,上面的“ echo $ PATH”行在travis日志中显示PATH包含项目文件夹:

$ echo $PATH
/home/travis/build/username/projectRoot/app1/node_modules/.bin:/home/travis/.rvm/gems/ruby-2.4.1/bin:/home/travis/......

但是错误仍然存​​在。

我也尝试过:

PATH=./node_modules/.bin:$PATH.

或更改测试脚本以使用相对路径:

"scripts": {
    "test": "./node_modules/.bin/mocha"
 }

但是仍然存在相同的错误。

任何建议将不胜感激。

非常感谢您的帮助

0 个答案:

没有答案