如何在黄瓜中获取标签 world.object
How to get tags in cucumber world.object
所以我有一个 Cucumberjs/puppeteer 框架。我想知道是否有一种方法可以访问世界对象中传递的黄瓜标签(例如:@smokeTest)。
根据文档:https://github.com/cucumber/cucumber-js/blob/master/docs/support_files/world.md,世界在世界和挂钩文件中都可以作为 'this' 访问。
选项 1:
根据您的要求,您可以尝试通过以下方式获取您当前正在执行的标签:
1) 创建一个名为 hooks 的文件
2) 添加
Before({tags: '@tagName'}, async function() {
this['tags'] = [];
this['tags'].push('@tagName');
console.log(this);
});
3) 在这种情况下,当您的场景在 hooks 文件中持有与 Before function 标签名称匹配的标签名称时,相应的标签名称将添加到 'this' 对象中。
以下输出将打印在控制台中:
{
tags:[ '@tagName' ]
}
这里的 tagName 是一个示例,它可以替换为任何名称(根据您的要求,它是 @SmokeTest),输出将采用以下格式:
{
tags:[ '@SmokeTest' ]
}
选项 2:
希望您在 npm 脚本中传递标签名称,例如 --tags=@tagName。
如果您使用控制台 process.argv,它将打印您在该 npm 脚本中传递的所有命令,包括数组格式的“--tags=@tagName”。
使用此数组,您可以根据其长度重复一个循环并从匹配的字符串中提取 tagName,如下所示:
let option: string;
process.argv.forEach(arg => {
if (arg.includes('tags')) {
option = arg;
this['tags'] = [];
this['tags'].push(option.replace('--tags=', ''));
}
});
现在,如果您控制 'this',它将包含一个名为 'tags' 的密钥,如下所示:
{
tags:[ '@tagName' ]
}
您可以使用 pickle object from Gherkin:
在 Before
挂钩中访问所有标签的列表以及有关场景的其他信息
Before(function ({ pickle }) {
this.tags = pickle.tags.map(i => i.name);
});
将 tags
数组添加到世界对象后,您可以从场景中的任何步骤定义访问它。
所以我有一个 Cucumberjs/puppeteer 框架。我想知道是否有一种方法可以访问世界对象中传递的黄瓜标签(例如:@smokeTest)。
根据文档:https://github.com/cucumber/cucumber-js/blob/master/docs/support_files/world.md,世界在世界和挂钩文件中都可以作为 'this' 访问。
选项 1:
根据您的要求,您可以尝试通过以下方式获取您当前正在执行的标签:
1) 创建一个名为 hooks 的文件 2) 添加
Before({tags: '@tagName'}, async function() {
this['tags'] = [];
this['tags'].push('@tagName');
console.log(this);
});
3) 在这种情况下,当您的场景在 hooks 文件中持有与 Before function 标签名称匹配的标签名称时,相应的标签名称将添加到 'this' 对象中。
以下输出将打印在控制台中:
{
tags:[ '@tagName' ]
}
这里的 tagName 是一个示例,它可以替换为任何名称(根据您的要求,它是 @SmokeTest),输出将采用以下格式:
{
tags:[ '@SmokeTest' ]
}
选项 2: 希望您在 npm 脚本中传递标签名称,例如 --tags=@tagName。 如果您使用控制台 process.argv,它将打印您在该 npm 脚本中传递的所有命令,包括数组格式的“--tags=@tagName”。
使用此数组,您可以根据其长度重复一个循环并从匹配的字符串中提取 tagName,如下所示:
let option: string;
process.argv.forEach(arg => {
if (arg.includes('tags')) {
option = arg;
this['tags'] = [];
this['tags'].push(option.replace('--tags=', ''));
}
});
现在,如果您控制 'this',它将包含一个名为 'tags' 的密钥,如下所示:
{
tags:[ '@tagName' ]
}
您可以使用 pickle object from Gherkin:
在Before
挂钩中访问所有标签的列表以及有关场景的其他信息
Before(function ({ pickle }) {
this.tags = pickle.tags.map(i => i.name);
});
将 tags
数组添加到世界对象后,您可以从场景中的任何步骤定义访问它。