Задание Gitlab CI успешно выполняется до запуска тестов мокко - PullRequest
1 голос
/ 10 мая 2019

Я обнаружил, что мои задания Gitlab успешно выполняются и заканчиваются до запуска самого теста.

Сначала я устанавливаю необходимые зависимости для своего приложения, затем вызываю команды mocha, но задание успешно выполняется до того, как из них получится какой-либо вывод.

Мой .gitlab-ci.yml:

image: node:lts-alpine

stages:
  - test

test:
  stage: test
  services:
    - mongo:latest
  script:
    - cd server/
    - apk add --update git
    - apk --no-cache add g++ gcc libgcc libstdc++ linux-headers make python
    - npm install --quiet node-gyp -g
    - npm install
    - npm rebuild bcrypt --build-from-source
    - npm i mocha -g
    - mocha ./src/tests/unit/. --timeout 10000 --exit
    - mocha ./src/tests/integration/. --timeout 10000 --exit
  cache:
    key: "$CI_PROJECT_ID"
    paths:
      - server/node_modules/

И последняя пара строк из бегунов выводится из консоли:

...
make: Leaving directory '/builds/myapp/myapp/server/node_modules/bcrypt/build'
bcrypt@3.0.2 /builds/myapp/myapp/server/node_modules/bcrypt
$ npm i mocha -g
/usr/local/bin/mocha -> /usr/local/lib/node_modules/mocha/bin/mocha
/usr/local/bin/_mocha -> /usr/local/lib/node_modules/mocha/bin/_mocha
+ mocha@6.1.4
added 115 packages from 509 contributors in 5.54s
$ mocha ./src/tests/unit/. --timeout 10000 --exit
$ mocha ./src/tests/integration/. --timeout 10000 --exit
Creating cache 8738844...
server/node_modules/: found 19633 matching files   
Uploading cache.zip to https://storage.googleapis.com/gitlab-com-runners-cache/project/XXXX/XXXX 
Created cache
Job succeeded

структура моей папки:

- root
    - client/
    - server/
        public/
        src/
            tests/
                unit/
                    someUnitTest.js
                integration/
                    someIntegrationTest.js
        package.json
        ...

Почему команды не ожидают начала / завершения? Локально они работают конечно. Я также попытался использовать npm run test в качестве псевдонима для команд 2 mocha, но это привело к тому же результату.

1 Ответ

0 голосов
/ 10 мая 2019

Я нашел проблему:

Команды mocha ничего не возвращают, потому что они терпят неудачу, прежде чем они начнутся. У них есть require('app.js') вверху, который запускает сервер и т. Д., И из-за отсутствующего файла .env этот и mocha тесты завершились неудачно.

Таким образом, правильное включение файла .env решило проблему.

...