Cucumber-js: 我们可以在 Step-Definition 的每个步骤中获得场景名称吗?

创建于 2014-06-20  ·  7评论  ·  资料来源: cucumber/cucumber-js

最有用的评论

现在最新和最好的方法是什么? 获取步骤名称等?

所有7条评论

你的意思是“场景:这是名字”——你想在什么时候检索它? 您可以附加自定义侦听器并在 BeforeScenario 事件期间获取场景负载并在其上调用 getName()

你是怎样做的? 因为这两个都返回“未定义”。

this.registerHandler('BeforeScenario', function (event, callback) {
  console.log(event.getPayloadItem());
  callback();
});
this.registerHandler('BeforeStep', function (event, callback) {
  console.log(event.getPayloadItem());
  callback();
});

嗨,斯图尔特,

再试试这个代码:

// This code is generated from coffeescript so it appears a bit more verbose than needed
this.registerHandler('BeforeScenario', function (event, callback) {
    var scenario = event.getPayloadItem('scenario');
  console.info("\n[" + (scenario.getName()) + "](" + (scenario.getUri()) + ":" + (scenario.getLine()) + ")");
  callback();
});

this.registerHandler('BeforeStep', function (event, callback) {
  var step = event.getPayloadItem('step');
  console.info("\n[" + (step.getName()) + "](" + (step.getUri()) + ":" + (step.getLine()) + ")");
  callback();
});

诀窍是您需要为getPayloadItem()提供一个参数。

为了回答您的问题,您应该能够将当前运行的场景属性存储在 BeforeScenario 处理程序之外的对象中,然后在 BeforeStep 处理程序中使用它。
我希望这会提示您找到正确的解决方案。

这是一个问题跟踪器。 请改为将支持问题发布到cukes谷歌组。

现在最新和最好的方法是什么? 获取步骤名称等?

此页面是否有帮助?
0 / 5 - 0 等级