Cucumber-js: Можем ли мы получить название сценария на каждом этапе определения шага?

Созданный на 20 июн. 2014  ·  7Комментарии  ·  Источник: cucumber/cucumber-js

Самый полезный комментарий

Какой самый последний и лучший способ сделать это сейчас? Получение имен шагов и тому подобного?

Все 7 Комментарий

Вы имеете в виду «Сценарий: вот имя» - когда вы хотите его получить? вы можете подключить настраиваемый прослушиватель и во время события BeforeScenario получить полезную нагрузку сценария и вызвать getName ()

Как ты это делаешь? Потому что оба они возвращают undefined.

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.
Надеюсь, это подскажет вам правильное решение.

Это средство отслеживания проблем. Вместо этого отправляйте вопросы в службу поддержки в группу

Какой самый последний и лучший способ сделать это сейчас? Получение имен шагов и тому подобного?

Удар

Была ли эта страница полезной?
0 / 5 - 0 рейтинги