CucumberJS 2.0.0 如何从 Before Scenario Hook 获取场景名称

CucumberJS 2.0.0 How to get the Scenario Name from the Before Scenario Hook

问题

我一直在使用 Before 挂钩的输出来命名我的屏幕截图文件,这样我们就有了屏幕截图来自的功能和场景的名称。

我在 1.3.0 中获得的输出允许我执行 scenario.getName() 来执行此操作,但是,1.3.0 的格式在 2.0.0

中发生了变化

有人知道怎么做吗?

代码

// hooks.js
defineSupportCode(function ({registerHandler, Before}) {

  Before(function (scenario, callback) {
        global.scenarioDetails = function(){
           return scenario;
        }
        callback();
  });

});


//otherFile.js
let name = scenarioDetails().<somethingHereToGrabTheName>;

来自console.log()

的输出
ScenarioResult {
 duration: 8043,
  failureException: null,
  scenario:
   Scenario {
     feature:
      Feature {
        description: undefined,
        keyword: 'Feature',
        line: 2,
        name: 'Hello World',
        tags: [Object],
        uri: 'Path/to/my.feature',
        scenarios: [Object] },
     keyword: 'Scenario',
     lines: [ 3 ],
     name: 'Google Search',
     tags: [ [Object] ],
     uri: 'Path/to/my.feature',
     line: 3,
     description: undefined,
     steps: [ [Object], [Object], [Object] ] },
  status: 'passed',
  stepResults:
   [ StepResult {
       attachments: [],
       duration: 1,
       step: [Object],
       stepDefinition: [Object],
       status: 'passed' },
     StepResult {
       attachments: [],
       duration: 8042,
       step: [Object],
       stepDefinition: [Object],
       status: 'passed' } ] }

已找到答案

这就是我找到功能、方案和步骤名称的方式:

  • 对于功能: feature.name
  • 针对场景: scenario.scenario.name
  • 步骤: step.name