使用茉莉花和量角器运行e2e测试时捕获控制台错误

时间:2019-04-11 20:22:46

标签: angular jasmine protractor angular-test angular-e2e

在运行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 :(得分:0)

我正在使用这样的函数:

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()中调用此函数。