即使测试失败,量角器也会退出代码0

时间:2016-12-02 12:24:05

标签: angular npm protractor azure-devops

我正在通过npm运行量角器v4.0.9,并注意到即使报告测试失败,我在Visual Studio Team Services上的构建也不会失败。进一步研究,我引入了一个错误,以便测试失败然后在本地运行它们。如下面的屏幕截图所示,我有17/17失败测试,​​但退出代码仍为0,我理解这是成功的。它甚至说chrome #01 passed,我认为这是错误的。

protractor passing when it should fail

这是我的量角器配置:

"use strict";
exports.config = {
    baseUrl: process.env.npm_package_config_baseUrl,
    framework: 'jasmine',
    capabilities: {
        browserName: 'chrome'
    },
    specs: ['test/*.spec.js'],
    rootElement: 'se-app',
    directConnect: true,
    ignoreUncaughtExceptions: false,
    onPrepare: function () {
        var globals = require('protractor');
        var browser = globals.browser;
        browser.ignoreSynchronization = true;
        browser.manage().window().maximize();
        var specReporter = require('jasmine-spec-reporter');

        // add jasmine spec reporter
        jasmine.getEnv().clearReporters();
        jasmine.getEnv().addReporter(new specReporter({
            displayStacktrace: false
        }));

        var reporters = require('jasmine-reporters');
        jasmine.getEnv().addReporter(new reporters.JUnitXmlReporter({
            savePath: 'junit/'
        }));
    },
};

我检查了documentation for the Protractor config,但看不到会导致这种情况发生的任何明显设置。我甚至在ignoreUncaughtExceptions:false中添加(如上所示)是明确的,但它没有任何区别。

1 个答案:

答案 0 :(得分:0)

如果有人在Jasmine 2+上碰到这个问题,Maloric的答案将无法解决。而是将onComplete函数添加到protractor.conf本身:

...other conf...,
onComplete: function (success) {
    if (!success) {
      process.exit(1);
    }
}

由于某种原因,默认的onComplete操作似乎为空,但这将对其进行纠正。如果您已经指定了其他onComplete操作,则只需添加一个process.exit(code)调用即可。