Сбой покрытия кода nyc и mocha при работе в jenkins - PullRequest
0 голосов
/ 03 октября 2019

Я пытаюсь сгенерировать отчет о покрытии кода для наших сборок в Jenkins. Локально, когда я выполняю команду

npm run coverage 
  "scripts": {
    "test": "cross-env mocha test -t 5000 --recursive --exit --reporter mochawesome",
    "coverage":"nyc --reporter=html --reporter=text ./node_modules/.bin/mocha test -t 5000 --recursive --exit"
  },

, он запускает тесты, а затем выдает результаты покрытия кода.

enter image description here

Теперь, когда тот же код выполняется в jenkins, я получаю эту ошибку

/ var / lib / jenkins / jobs / api-ci -velop/workspace/back-end/node_modules/path-to-regexp/index.js:63 path = ('^' + path + (строго? '': path [path.length - 1] === '/'? '?': '/?')) ^

TypeError: Невозможно прочитать свойство 'length' с неопределенным значением в pathtoRegexp (/ var / lib / jenkins / jobs / api-ci -velop / workspace / back-end/node_modules/path-to-regexp/index.js:63:49) на новом уровне (/ var / lib / jenkins / jobs / api-ci -velop / рабочая область / back-end / node_modules / express / lib / router /layer.js: 45: 17)

, очевидно, что-то делает с папкой node_module, и я не уверен, как этого избежать. Я исключаю папку и файлы в конфигурации nyc

  "nyc": {
    "branches": 5,
    "lines": 25,
    "functions": 13,
    "statements": 25,
    "check-coverage": true,
    "exclude": [
      "**/services/plaidService.js",
      "**/node_modules/**",
      "**/node_modules/plaid/lib/PlaidClient.js"
    ]
  },

Любые идеи, что я должен сделать, чтобы избежать проверки папки node_modules?

...