如果发生错误,我希望能够记录方案名称。我正在使用Cucumber.js和node。
功能文件
场景:我可以去Google
鉴于我有一台电脑
当我去Google
然后我看到了奇妙的东西
我尝试了下面的代码,但名称以空字符串形式返回。
When(/^I go to google$/, (scenario) => {
// do something
var scenarioName = scenario.name;
});
通过逐步执行代码,我可以看到它是一个函数。 它具有:
[[[FunctionLocation]] =对象
[[Scopes]] =范围(6)
length = 2
name =“”
答案 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)}.`);