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

时间:2017-02-27 13:20:07

标签: javascript cucumber bdd cucumberjs

问题

我一直在使用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' } ] }

1 个答案:

答案 0 :(得分:1)

找到答案

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

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