我正在使用量角器来自动化混合移动应用程序,我使用的是Protractor-HTML-screenshot-reporter,但是在成功执行测试后它没有显示任何报告。
以下是我的代码:
var HtmlReporter = require('protractor-html-screenshot-reporter');
var reporter=new HtmlReporter({
baseDirectory: 'C:\\Users\\bhawani.prasad\\Desktop\\Protractor\\PageObject\\report', // a location to store screen shots.
docTitle: 'Protractor Demo Reporter',
docName: 'protractor-demo-tests-report.html'
});
onPrepare: function() {
jasmine.getEnv().addReporter(reporter);
} ,
答案 0 :(得分:4)
对于那些想知道为什么protactor-html-screenshot-reporter
没有生成屏幕截图的人,如果您使用的是jasmine2
:
protractor-html-screenshot-reporter 与jasmine 2不兼容
答案 1 :(得分:0)
这里没什么可做的。我建议你放弃一个截图库并自己滚动。以下是我们在内部使用以在测试失败后获取屏幕截图和html的内容。
function setupScreenGrabber() {
jasmine.getEnv().afterEach(function() {
if (jasmine.getEnv().currentSpec.results_.failedCount > 0) {
var filename = 'target/screenshots/failed-' + jasmine.getEnv().currentSpec.getFullName() + '-' + Date.now();
browser.takeScreenshot().then(function(png) {
var stream = fs.createWriteStream(filename + '.png');
stream.write(new Buffer(png, 'base64'));
stream.end();
});
element(by.css('html')).getOuterHtml().then(function(html) {
fs.writeFile(filename + '.html', html);
});
}
});
}
只需从onPrepare
内部调用此方法即可。您需要require(fs)
。此外,由于您只想在通过测试时捕获,因此将> 0
更改为=== 0
。但是,这应该让你开始。