CucumberJS JSON 报告器
一个为 WebdriverIO v8 及更高版本创建 CucumberJS JSON 文件的 WDIO 报告器。
它的作用
这个报告器将为每个被测试的特性生成一个 Cucumber JSON 文件。该 JSON 文件可以与您想要使用的任何报告一起使用,例如 multiple-cucumber-html-reporter。
它还会将有关运行实例的元数据添加到特性文件中,最后但同样重要的是,它将为您提供向 JSON 输出添加附件的机会。
安装
最简单的方法是将 wdio-cucumberjs-json-reporter 作为 devDependency 保存在您的 package.json 中。
{
"devDependencies": {
"wdio-cucumberjs-json-reporter": "^5.0.0"
}
}
您可以简单地通过以下方式安装:
npm install wdio-cucumberjs-json-reporter --save-dev
这样它将自动添加到您的 package.json 中
有关如何安装 WebdriverIO 的说明可以在这里找到。
配置
在您的 wdio.conf.js 文件中配置输出目录和语言:
export const config = {
// ...
reporters: [
// 像这样使用默认选项,请参阅下面的选项
'cucumberjs-json',
// 或者像这样,如果您想设置文件夹和语言
[ 'cucumberjs-json', {
jsonFolder: '.tmp/new/',
language: 'en',
},
],
],
// ...
}
不要同时使用这两种添加报告器的方式,这只是一个示例!
选项
jsonFolder
- 类型:
String - 必填: 否
- 默认值:
.tmp/json/
此报告生成的 JSON 文件将存储的目录,相对于脚本 启动的位置。
注意: 如果您从命令行使用 npm 脚本,例如 npm run test,则 jsonFolder 将相对于脚本执行的路径。从项目根目录执行它也将在项目根目录中创建 jsonFolder。
language
- 类型:
String - 必填: 否
- 默认值:
en
编写 Gherkin 场景的语言(默认为英语)。语言代码及其关键字的列表可以在这里找到。
disableHooks
- 类型:
boolean - 必填: 否
- 默认值:
false
如果此属性设置为 true,则钩子详情将不会成为生成的一部分。
reportFilePerRetry
- 类型:
boolean - 必填: 否
- 默认值:
true
当重试规范时,如果将此属性设置为 false,报告将附加到先前尝试的现有报告文件中。
示例:
['cucumberjs-json', { jsonFolder: '.tmp/new/', language: 'en', disableHooks:true}]
元数据
注意:
如果您使用的是 WebdriverIO V6,则当前不支持此功能,WebdriverIO V5 仍支持此功能,WebdriverIO V7 再次支持此功能
如前所述,此报告可以自动存储特性执行所在的当前机器/设备的元数据。
要自定义此内容,您可以通过向 capabilities 添加以下对象来完成
// Example wdio.conf.js
export const config = {
//..
capabilities: [
{
browserName: 'chrome',
// 添加这个
'cjson:metadata': {
// 对于浏览器
browser: {
name: 'chrome',
version: '58',
},
// 对于应用程序
app: {
name: 'name.of.app.ipa',
version: '1.2.3',
},
device: 'MacBook Pro 15',
platform: {
name: 'OSX',
version: '10.12.6'
}
},
},
],
};
元数据对象需要有
cjson前缀,否则它将不起作用!
