繁体   English   中英

量角器不会在Jenkins中截屏

[英]Protractor won't take screenshot in Jenkins

当量角器中的测试失败时,我正在使用以下代码来截取屏幕截图(每个之后):

function failScreenshot() {
var fs = require('fs');
var spec = jasmine.getEnv().currentSpec;
var specName = spec.description.split(' ').join('_');

if (spec.results().passed()) {
    return;
} else {
    browser.takeScreenshot().then(
            function(png) {
                var stream = fs.createWriteStream('screenshots/' + specName + '.png');
                stream.write(new Buffer(png, 'base64'));
                stream.end();
            });
}

}

当我在本地运行测试时,屏幕截图按预期方式工作。 通过Jenkins运行测试时,测试将在第一次失败时停止,并且不会创建屏幕截图。 另外,文件夹和路径是正确的,我已经一遍又一遍地检查了它们。 我的詹金斯版本是1532.1

关于如何解决此问题的任何想法?

经过进一步的文档整理后,我找到了答案。 这是路径的问题。 似乎NODE JS没有按照我的想法读取路径。

./返回当前目录,require()函数中除外。 使用require()时,它将..读取到调用它的文件的目录中(显然,这里是错误的)。 __dirname始终是使用该文件的目录。 用于我的路径的代码如下:

__dirname + '/screenshots/' + specName + '.png'

您也可以使用mocha-proshot记者在jenkins中截取屏幕截图。

它是一个npm软件包,可以轻松下载并且非常容易设置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM