Cucumber-js: ステップ定義の各ステップでシナリオ名を取得できますか?

作成日 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ハンドラー内で使用できる必要があります。
これが正しい解決策を示唆することを願っています。

これは課題追跡システムです。 代わりに、サポートの質問をcukesgoogleグループに投稿してください。

これを今行うための最新かつ最高の方法は何ですか? ステップ名などを取得しますか?

バンプ

このページは役に立ちましたか?
0 / 5 - 0 評価