如何从黄瓜js获取场景名称?

时间:2018-08-08 12:35:41

标签: node.js cucumberjs

如果发生错误,我希望能够记录方案名称。我正在使用Cucumber.js和node。

  

功能文件

     

场景:我可以去Google

     

鉴于我有一台电脑

     

当我去Google

     

然后我看到了奇妙的东西

我尝试了下面的代码,但名称以空字符串形式返回。

When(/^I go to google$/, (scenario) => {
// do something
var scenarioName = scenario.name;
});

通过逐步执行代码,我可以看到它是一个函数。 它具有:

[[[FunctionLocation]] =对象

[[Scopes]] =范围(6)

length = 2

name =“”

3 个答案:

答案 0 :(得分:2)

似乎您不能在“给定”或“何时”执行此操作,而必须在“之前”或“之后”执行该操作:

Before((scenario) => {
const scenarioName = scenario.name;
console.log(`${scenarioName}`);
});

答案 1 :(得分:1)

我可以使用以下代码获取方案名称:

Before((scenario: any) => {
    console.log(`Starting scenario ${scenario.sourceLocation.uri}:${scenario.sourceLocation.line} (${scenario.pickle.name})`);
});

如您所见,其中不仅有方案名称,而且还有更多。带有所有步骤,标签等的整个测试都在对象中。我正在使用CucumberJS 5.0.3。

答案 2 :(得分:1)

我使用以下代码找到了方案名称

console.log(`The scenario is ${JSON.stringify(scenario.pickle.name)}.`);