我能够在黄瓜版本1.X中获得这个但是将黄瓜升级到更高版本无法使用(这个)并且它表示scenario.getName()不是函数。
我需要这个,因为我的测试取决于场景名称,因为它涉及不同测试数据的常用功能。
这是我在Cucumber版本1.x
中获取方案名称的方法`module.exports= function Steps() {
this.BeforeScenario(function (scenario, callback) {
var currentScenarioName = scenario.getName();
console.log(scenario.getName());
callback(null);
});
};`
另一个问题是如何从我的步骤定义中将Text嵌入到我的黄瓜报告中而不是在钩子中执行函数
答案 0 :(得分:0)
在Cucumber 3.x中获取方案名称,您可以使用传递给Before hook的第一个参数,它是Scenario对象的pickle版本。这是代码:
const { defineSupportCode } = require('cucumber');
defineSupportCode(function({Before}) {
Before((scenario)=> {
console.log('before scenario', scenario.name);
});
})
您可以打印此场景对象以了解此对象中包含的其他信息。
这是提到“testCase”的document,它等于上面的场景参数。
BTW,似乎你正在使用Cucumber 1.x或3.x.您可能需要尝试CukeTest,它能够编辑这两个版本,并提供代码生成和验证。还请分享如何在当前版本中插入文本以进行报告,我只知道可以在报告中插入图像的World对象中的“附加”方法。
答案 1 :(得分:0)
为了扩展Lean Prop的答案,我在Cucumber 4.x(使用4.1)中发现此代码有效:
const { defineSupportCode } = require('cucumber');
defineSupportCode(function({Before}) {
Before((scenario)=> {
console.log('scenario.pickle.name);
});
})