gpt4 book ai didi

node.js - Nodejs Protractor + Jasmine + JUnitXmlReporter 运行测试但不等待浏览器

转载 作者:太空宇宙 更新时间:2023-11-04 02:33:16 27 4
gpt4 key购买 nike

我正在使用 Protractor 对 Angular 网站进行端到端测试,但希望将结果导出到 Jenkins 可以读取的文件 (JUnitXmlReporter),因此为了实现此目的,我需要在“onPrepare”上对 Protractor 配置文件进行“简单更改”:

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 生成文件。

有什么问题吗?

最佳答案

您可能需要等待浏览器的 promise 。

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,那么您可能需要从 jasmine 对象调用 JUnitXmlReporter,而不是 jasmineReporters。我没有使用 node-jasminejasmine-node-reporter-fix,因此我无法说明报告器如何导出,但在 "jasmine-reporters":"~1.0.0" 上,报告器仍然附加到 jasmine 对象。

https://github.com/larrymyers/jasmine-reporters#protractor

关于node.js - Nodejs Protractor + Jasmine + JUnitXmlReporter 运行测试但不等待浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24730495/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com