由于我是自动测试和量角器的新手,我在测试中设置它时遇到了一些麻烦。
根据guide,每次我创建一个新的截图报告器实例时,我都必须传递一个目录路径。是的,这意味着我每次在spec文件中创建一个新实例?
此外,还有一些功能可以截取我跳过的和我失败的测试的截图。我应该使用takeScreenShotsForSkippedSpecs
和takeScreenShotsOnlyForFailedSpecs
?在我的配置文件中?
这是我的准备:
onPrepare: function () {
browser.driver.manage().window().maximize();
global.dvr = browser.driver;
global.isAngularSite = function (flag) {
browser.ignoreSynchronization = !flag;
}
jasmine.getEnv().addReporter(new ScreenShotReporter({
baseDirectory: '/tmp/screenshots',
takeScreenShotsForSkippedSpecs: true,
takeScreenShotsOnlyForFailedSpecs: true
}));
注意:如果您使用的是jasmine2
,请使用protractor-jasmine2-screenshot-reporter
。
对于jasmine1
:
我一直在使用protractor-html-screenshot-reporter
package成功使用。它基于protractor-screenshot-reporter
,但也提供了一个很好的HTML报告。
这是我在量角器配置中的内容:
var HtmlReporter = require("protractor-html-screenshot-reporter");
exports.config = {
...
onPrepare: function () {
// screenshot reporter
jasmine.getEnv().addReporter(new HtmlReporter({
baseDirectory: "test-results/screenshots"
}));
},
...
}
运行测试后,您将获得一个包含(示例)的HTML文件:
您可以单击“查看”以在浏览器中查看特定于测试用例的屏幕截图。
图书馆的自述文件非常自我解释。安装库后,将其添加到量角器配置文件中的量角器onPrepare
中。
即protractorConf.js:
var ScreenShotReporter = require('protractor-screenshot-reporter');
exports.config = {
// your config here ...
onPrepare: function() {
// Add a screenshot reporter and store screenshots to `/tmp/screnshots`:
jasmine.getEnv().addReporter(new ScreenShotReporter({
baseDirectory: '/tmp/screenshots',
takeScreenShotsForSkippedSpecs: true
}));
}
}
然后protractor protractorConf.js
运行量角器。
就在最近,我发布了一个名为protractor-screenshoter-plugin的全新插件,可以为每个浏览器实例捕获屏幕截图和控制台日志。可以根据每个期望或规范选择快照。它配备了一个漂亮的角度和基于引导程序的分析工具,可以直观地检查和修复测试结果。
在https://github.com/azachar/protractor-screenshoter-plugin查看。
此外,我创建了所有可用alternatives的列表,所以如果你发现其他东西,请不要犹豫,在那里添加它。