我正在使用Pretractor来测试AngularJS

我想在测试结束时检查没有未捕获的异常发生并打印到浏览器控制台。

有没有简单的方法来做这件事?

有帮助吗?

解决方案

如果您使用带有jasmine的Promractor,请使用以下代码:

afterEach(function() {
    browser.manage().logs().get('browser').then(function(browserLog) {
        expect(browserLog.length).toEqual(0);
    });
});
.

如果没有控制台错误,这将通过测试用例。如果有任何控制台错误,则测试将失败。

如何访问浏览器控制台内容的说明,可以在 如何掌握常见问题的浏览器控制台 部分。

其他提示

很少努力,我们可以调整与cucumber.js一起使用的接受的答案,以防你没有使用默认测试框架的pryractor。

this.After(function(callback) {
    browser.manage().logs().get('browser').then(function(browserLog) {
        if (browserLog.length !== 0) {
            var failMessage = "There was output in the browser console:" +
                              browserLog.map(JSON.stringify).join(";\n");
            callback.fail(failMessage);
        }
        else {
            callback();
        }
    });
});
.

您将想在挂钩 上的文档> ,这是黄瓜等于Jasmine的世代古代古典。

如何@velochy陈述现在是一个自己的包,为模块: https://www.npmjs.com/package/protractor-console-plugin

可以在protractor.conf中使用它:

  plugins: [{
    package: 'protractor-console-plugin',
    failOnWarning: {Boolean}                (Default - false),
    failOnError: {Boolean}                  (Default - true),
    logWarnings: {Boolean}                  (Default - true),
    exclude: {Array of strings and regex}   (Default - [])
  }]
.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top