Ловите ошибки консоли при выполнении тестов e2e с жасмином и транспортиром - PullRequest
2 голосов
/ 11 апреля 2019

Во время выполнения тестов e2e (транспортир, селен) я хочу перехватывать любые ошибки консоли и предупреждения, генерируемые приложением.

Я знаю плагин транспортира protractor-console-plugin, который ловит консоль и делает тесты неудачными, но в конце он печатает все журналы всех тестов, и я не знаю, во время какого теста был создан журнал.

Также я знаю protractor-console, который хорошо показывает журналы консоли после теста, но не может пометить тест как неудачный в случае console.error.

Мой package.json (важная часть здесь):

"jasmine-core": "^2.8.0",
"jasmine-spec-reporter": "^4.2.1",
"karma": "^1.7.1",
"karma-chrome-launcher": "^2.2.0",
"karma-cli": "~1.0.1",
"karma-coverage-istanbul-reporter": "^1.3.0",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "^5.1.2",
"protractor-console": "^3.0.0",
"protractor-console-plugin": "^0.1.1",
"protractor-jasmine2-screenshot-reporter": "^0.4.1",

1 Ответ

0 голосов
/ 12 апреля 2019

Я использую функцию, подобную этой:

public static async browserErrorLogger() {
    const browserLogs = await browser.manage().logs().get('browser');
    browserLogs.forEach((log) => {
      if (log.level.value > 900) { // it's an error log
        console.log(`Browser console error: ${log.message}`);
        // if you want to fail on warning add this
        fail(log.message);
      }
    });
  }

Затем вы можете вызвать эту функцию в beforeEach() в файле спецификации.

...