Def*_*020 11 automated-tests jasmine angularjs protractor jasmine2.0
我的protractor配置文件中的这段代码完美无缺...除了htmlonComplete 中的文件创建始终使用上一次测试运行的junitresults xml文件,而不是在同一配置文件的onPrepare函数中创建的xml文件.所以html页面总是显示测试结果,一个在html页面声明的时间戳后面运行.
一个简单的例子是,如果我从test-results文件夹中的先前测试开始没有xml文件,则html生成器根本找不到用于构建html文件的xml文件,因此不生成html文件.但是新的 xml文件确实显示仍然被创建,放入文件夹,并完全被忽略......直到下一次测试运行.
你能帮助我测试生成一个xml文件,然后用那个 xml文件生成html文件吗?
谢谢!
onPrepare: function() {
var capsPromise = browser.getCapabilities();
capsPromise.then(function(caps) {
browser.browserName = caps.caps_.browserName.replace(/ /g,"-");
browser.browserVersion = caps.caps_.version;
browserName = browser.browserName;
browser.reportPath = 'c:/QA/test-results/' + browser.browserName + '/';
}). then(function(caps) {
var jasmineReporters = require('jasmine-reporters');
jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter({
consolidateAll: true,
savePath: 'c:/QA/test-results/' + browser.browserName + '/',
filePrefix: 'junitresults'
}));
});
return browser.browserName, browser.browserVersion, browser.reportPath;
},
onComplete: function() {
var HTMLReport = require('jasmine-xml2html-converter');
// Call custom report for html output
testConfig = {
reportTitle: 'Test Execution Report',
outputPath: browser.reportPath,
seleniumServer: 'default',
applicationUrl: browser.baseUrl,
testBrowser: browser.browserName + ' v.' + browser.browserVersion
};
new HTMLReport().from(browser.reportPath + 'junitresults.xml', testConfig);
console.log("... aaaannnnd... done.");
},
Run Code Online (Sandbox Code Playgroud)
这完全是关于时机的.JUnitXmlReporterfrom jasmine-reporters将输出写入jasmineDone回调(源)上的XML文件,该文件发生在onComplete.
首先要尝试的是切换到afterLaunch或onCleanup代替onComplete.请注意,browser对象在这些方法中不可用,您需要其他方法来共享回调之间的变量.另见:
您还可以添加自定义报告器,提供jasmineDone回调:
jasmine.getEnv().addReporter({
jasmineDone: function () {
var HTMLReport = require('jasmine-xml2html-converter');
// Call custom report for html output
testConfig = {
reportTitle: 'Test Execution Report',
outputPath: browser.reportPath,
seleniumServer: 'default',
applicationUrl: browser.baseUrl,
testBrowser: browser.browserName + ' v.' + browser.browserVersion
};
new HTMLReport().from(browser.reportPath + 'junitresults.xml', testConfig);
console.log("... aaaannnnd... done.");
}
});
Run Code Online (Sandbox Code Playgroud)
另一种选择是直接通过例如生成HTML报告protractor-jasmine2-html-reporter.
| 归档时间: |
|
| 查看次数: |
447 次 |
| 最近记录: |