Как отладить HeadlessChrome 0.0.0 (Linux 0.0.0) ERROR { "isTrusted": true } в модульном тесте Angular 6?

Когда я запускаю свой набор тестов, я получаю ошибку в совершенно ином модульном тесте, чем тот, в котором я работал. Что я делаю не так?

HeadlessChrome 0.0.0 (Linux 0.0.0) ERROR
{
    "isTrusted": true
}

Затем следуют некоторые шаги сборки и следующая ошибка во время выполнения теста:

HeadlessChrome 0.0.0 (Linux 0.0.0) ERROR
  An error was thrown in afterAll
  [object ErrorEvent] thrown

Если я закомментирую определенные тесты, скажем, в классе A, другой компонент не пройдёт проверку в Компоненте B. Если я закомментирую эти тесты, произойдет сбой другого теста в Компоненте C. Ни один из этих тестов не был обновлен в последнее время, поэтому ни один из них не должен быть неудачным.

В этом вопросе я увидел, что некоторые люди связывают эту проблему с папкой node_modules. Тем не менее, я просто смягчил аналогичную проблему, переустановив папку node_modules вчера. Это распространенная ошибка? Возможно, это не тот случай, когда разработчики должны последовательно удалять и переустанавливать папку node_modules. Должно быть, я сделал что-то не так, но все, что я делал, это юнит тестирование, как обычно

Как я могу отладить и исправить ошибку Headless Chrome, чтобы вернуться к модульному тестированию?

Вот некоторые статистические данные о моем окружении:

Соответствующие версии зависимостей:

"@angular/cli": "6.0.8",
    "@angular/compiler-cli": "6.0.6",
    "@angular/language-service": "6.0.6",
    "@types/jasmine": "~2.5.53",
    "@types/jasminewd2": "~2.0.2",
    "@types/node": "~6.0.60",
    "codelyzer": "^4.0.1",
    "jasmine-core": "~2.6.2",
    "jasmine-spec-reporter": "~4.1.0",
    "karma": "~1.7.0",
    "karma-chrome-launcher": "~2.1.1",
    "karma-cli": "~1.0.1",
    "karma-coverage-istanbul-reporter": "^1.2.1",
    "karma-jasmine": "~1.1.0",
    "karma-jasmine-html-reporter": "^0.2.2",
    "ng-diff-match-patch": "^2.0.6",
    "protractor": "~5.1.2",
    "ts-node": "~3.2.0",
    "tslint": "~5.7.0",
    "typescript": "2.7.2",
    "@angular-devkit/build-angular": "~0.6.8"

Соответствующие настройки Karma.conf:

reporters: ['progress', 'kjhtml'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['ChromeHeadless'],
    singleRun: false,
    customLaunchers: {
      ChromeHeadless: {
        base: 'Chrome',
        flags: [
          '--headless',
          // '--disable-gpu',
          '--no-sandbox',
          // Without a remote debugging port, Google Chrome exits immediately.
          '--remote-debugging-port=9222',
        ],
      }
    },
    browserDisconnectTolerance: 8,
    browserNoActivityTimeout: 60000,
    browserDisconnectTimeout: 20000,

1 ответ

Решение

На самом деле я решил эту проблему, удалив папку node_modules и переустановив ее, а также откатив на две коммиты юнит-тесты. Я до сих пор не уверен, что вызывает эту проблему или почему работает удаление и переустановка папки node_modules. Но на самом деле это сработало.

РЕДАКТИРОВАТЬ: Я также отметил, что эта ошибка снова появилась, когда у меня было два модульных теста с одинаковым описанием. Опять же, я не уверен, что это была единственная причина, но изменение описаний модульных тестов, похоже, также помогло. Я хотел бы, чтобы ошибка была немного более описательной.

ДОПОЛНИТЕЛЬНОЕ РЕДАКТИРОВАНИЕ: Проблема все еще возникает регулярно, и ни одна из проблем, перечисленных в ответе, отсутствует.

Другие вопросы по тегам