protractor-html-screenshot-reporter在测试执行后没有显示任何报告

时间:2015-01-13 14:12:20

标签: jasmine protractor appium

我正在使用量角器来自动化混合移动应用程序,我使用的是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);
        } ,

2 个答案:

答案 0 :(得分:4)

对于那些想知道为什么protactor-html-screenshot-reporter没有生成屏幕截图的人,如果您使用的是jasmine2

  

protractor-html-screenshot-reporter 与jasmine 2不兼容

切换到protractor-jasmine2-screenshot-reporter

答案 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。但是,这应该让你开始。