我正在使用量角器对Angular网站进行端到端测试,但希望将结果导出到Jenkins可以读取的文件(JUnitXmlReporter),因此要实现这一点,我需要进行简单的更改&#34 34;到" onPrepare"上的量角器配置文件:
exports.config = {
// Do not start a Selenium Standalone sever - only run this using chrome.
framework: 'jasmine',
// Capabilities to be passed to the webdriver instance.
capabilities: {
'browserName': 'chrome'
},
specs: [
'./test1.js',
'./test2.js'
],
// Options to be passed to Jasmine-node.
jasmineNodeOpts: {
showColors: true,
isVerbose: true
},
onPrepare: function() {
var jasmineReporters = require('jasmine-node-reporter-fix');
jasmine.getEnv().addReporter(
new jasmineReporters.JUnitXmlReporter('protractor_output', true, true, 'testresults.e2e.');
}
};
但是一旦我添加了这个" onPrepare"代码,所有测试运行,无需等待浏览器呈现html 。如果我删除" onPrepare"代码,所有测试将按预期开始工作,但没有为jenkins生成文件。
任何想法都错了吗?
答案 0 :(得分:0)
您可能需要等待浏览器的承诺。
onPrepare: function() {
var jasmineReporters = require('jasmine-node-reporter-fix');
var capsPromise = browser.getCapabilities();
capsPromise.then(function (caps) {
jasmine.getEnv().addReporter(
new jasmineReporters.JUnitXmlReporter(
'protractor_output', true, true, 'testresults.e2e.');
}
}
也就是说,如果您使用的是Protractor,那么您可能需要从JUnitXmlReporter
对象调用jasmine
,而不是jasmineReporters
。我没有使用node-jasmine
或jasmine-node-reporter-fix
,因此我无法说明如何导出记者,但在"jasmine-reporters":"~1.0.0"
,记者仍然附在jasmine
上1}}对象。