在Node-JS Selenium中,如何获取黄瓜场景的名称并在步骤定义中将文本嵌入到我的报告中

时间:2018-03-02 18:46:42

标签: node.js selenium cucumber scenarios

我能够在黄瓜版本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嵌入到我的黄瓜报告中而不是在钩子中执行函数

2 个答案:

答案 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);
    });
})