Не удается запустить модульный тест с использованием karma в сборке Teamcity. Ошибка: «Установите переменную env» PUPPETEER_SKIP_DOWNLOAD», чтобы пропустить загрузку».

#angular #unit-testing #puppeteer #teamcity #karma-runner

Вопрос:

Я пытаюсь запустить тесты на карму в teamcity и сталкиваюсь с такой ошибкой:

npm err! ОШИБКА: Не удалось настроить Chromium r901912! Установите переменную env «PUPPETEER_SKIP_DOWNLOAD», чтобы пропустить загрузку.

мои конфигурации:

пакет.json:

 "test-ci": "ng test --configuration=ci"
 

angular.json > проекты >> архитектор:

 "test": {
          "builder": "@angular-devkit/build-angular:karma",
          "options": {
            "main": "src/test.ts",
            "karmaConfig": "./karma.conf.js",
            "polyfills": "src/polyfills.ts",
            "tsConfig": "src/tsconfig.spec.json",
            "scripts": [],
            "styles": [
              "src/styles.scss"
            ],
            "assets": [
              "src/assets",
              "src/favicon.ico"
            ]
          },
          "configurations": {
            "ci": {
              "karmaConfig": "./karma.conf.ci.js"
            }
          }
        }
 

karma.conf.ci.js:

 const puppeteer = require('puppeteer');
process.env.CHROME_BIN = puppeteer.executablePath();

module.exports = function (config) {
  config.set({
    basePath: '',
    frameworks: ['jasmine', '@angular-devkit/build-angular'],
    plugins: [
      require('karma-jasmine'),
      require('karma-chrome-launcher'),
      require('karma-jasmine-html-reporter'),
      require('karma-coverage-istanbul-reporter'),
      require('@angular-devkit/build-angular/plugins/karma'),
      require('karma-teamcity-reporter')
    ],
    client:{
      clearContext: false // leave Jasmine Spec Runner output visible in browser
    },
    files: [],
    preprocessors: {},
    mime: {
      'text/x-typescript': ['ts','tsx']
    },
    reporters: ["teamcity", "coverage-istanbul"],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    singleRun: true,
    customLaunchers: {
      ChromeCustom: {
        base: 'ChromeHeadless',
        flags: '--no-sandbox'
      }
    },
    codeCoverage: true,
    watch: false,
  });
};
 

Build step custom script:

 npm run test-ci
 

По сути, вопрос в том, в каком месте я могу настроить эту переменную. Извините, я разработчик интерфейса и вообще не разбираюсь в интерфейсных операциях, пытаюсь понять это, так что мой вопрос может быть глупым