GitlabCI для Angular Карма не может захватить браузер - PullRequest
0 голосов
/ 25 апреля 2020

Я новичок в angular (6 недель).

  1. Контекст

    Мое веб-приложение работает нормально, я могу выполнить тест локально с Chrome или ChromeHeadLess (технически это, кажется, хром). Кажется, что он может не захватить с первой попытки.
    Я следовал этому уроку , чтобы запустить Gitlab CI.
    Проект (внешний интерфейс) расположен внутри Front, который становится front на gitlab CI, понятия не имею, почему.

  2. Проблема:

    Фаза тестирования Git не выполнена (время ожидания). Браузер кармы не захватывается во время задания gitlab.

  3. Анализ:

    Конфликт кармы работает локально, путь браузера кармы найден. Были протестированы другие изображения, кроме node, но они не работали по другим причинам (отсутствие опыта). Все протестированные конфигурации Karma (включая npm one) не дали другого результата.

  4. Root Причина:

    Gitlab ci config имеет проблемы: на основе узла Chrome не найден. Я почти уверен, что есть проблема после фазы сборки (успешно). Это может быть копия.

  5. Конфигурация gitlab CI и Karma


  • Мой Gitlab CI
image: node:latest
before_script :
  #this is line 96 in the pipeline log
  - pwd
  - ls
  - cd front

stages:
  - build
  - test

cache:
  paths:
    - front/node_modules/

install_dependencies:
  stage: build
  script:
    - npm install
  artifacts:
    paths:
      - front/node_modules/

testing_testing:
  stage: test
  script: npm test

  • Мой KArma conf
// Karma configuration file, see link for more information
// https://karma-runner.github.io/1.0/config/configuration-file.html
const process = require('process');
process.env.CHROME_BIN = require('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')
    ],
    client: {
      clearContext: false // leave Jasmine Spec Runner output visible in browser
    },
    coverageIstanbulReporter: {
      dir: require('path').join(__dirname, './coverage/Front'),
      reports: ['html', 'lcovonly', 'text-summary'],
      fixWebpackSourcePaths: true
    },
    reporters: ['progress', 'kjhtml'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browserSocketTimeout: 6000,
    browserNoActivityTimeout: 6000,
    captureTimeout: 6000,
    browserDisconnectTimeout : 6000,
    browserDisconnectTolerance : 1,
    browsers: ['ChromeHeadless'],
    customLaunchers:{
      HeadlessChrome:{
        base: 'ChromeHeadless',
        flags: ['--no-sandbox']
      }
    },
    singleRun: false,
    restartOnFileChange: true
  });
};

Распространенная ошибка:

 > ng test
 23 04 2020 22:34:17.529:WARN [karma]: No captured browser, open http://localhost:9876/
 23 04 2020 22:34:17.572:INFO [karma-server]: Karma v4.1.0 server started at http://0.0.0.0:9876/
 23 04 2020 22:34:17.573:INFO [launcher]: Launching browsers ChromeHeadless with concurrency unlimited
 23 04 2020 22:34:17.576:INFO [launcher]: Starting browser ChromeHeadless
 23 04 2020 22:34:23.579:WARN [launcher]: ChromeHeadless have not captured in 6000 ms, killing.
 23 04 2020 22:34:26.807:WARN [launcher]: ChromeHeadless was not killed in 2000 ms, sending SIGKILL.
 23 04 2020 22:34:27.133:WARN [karma]: No captured browser, open http://localhost:9876/
 23 04 2020 22:34:28.808:WARN [launcher]: ChromeHeadless was not killed by SIGKILL in 2000 ms, continuing.
Running after_script
00:00
 WARNING: Failed to inspect build container 63b16c112b7fd6ac743982e177e1dd409a144a5851ca0324c8bccb8a15d4c890 context deadline exceeded (docker_command.go:77:0s)
...