我正在通过npm运行量角器v4.0.9,并注意到即使报告测试失败,我在Visual Studio Team Services上的构建也不会失败。进一步研究,我引入了一个错误,以便测试失败然后在本地运行它们。如下面的屏幕截图所示,我有17/17失败测试,但退出代码仍为0,我理解这是成功的。它甚至说chrome #01 passed
,我认为这是错误的。
这是我的量角器配置:
"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
中添加(如上所示)是明确的,但它没有任何区别。
答案 0 :(得分:0)
如果有人在Jasmine 2+上碰到这个问题,Maloric的答案将无法解决。而是将onComplete函数添加到protractor.conf本身:
...other conf...,
onComplete: function (success) {
if (!success) {
process.exit(1);
}
}
由于某种原因,默认的onComplete操作似乎为空,但这将对其进行纠正。如果您已经指定了其他onComplete操作,则只需添加一个process.exit(code)
调用即可。