Cucumber-js: 複数の例を含むシナリオの概要

作成日 2018年06月06日  ·  16コメント  ·  ソース: cucumber/cucumber-js

こんにちは、
まず第一に、このJSGherkinの実装に感謝します。

私の問題:
いくつかの例を含むシナリオの概要があります。 このシナリオには、いくつかのURLを使用してエンドポイントを取得する手順が含まれています。このシナリオの概要に、URLのパラメーターを使用した別の例を示します。
次に、最初の例に別の例を掛けたものに従ってシナリオを実行します。 したがって、最初の例に4行があり、2番目の例に4行= 4 x 4 = 16の実行がある場合。

基本的には
https://github.com/Behat/Behat/issues/1082

最も参考になるコメント

https://github.com/Behat/Behat/issues/1082は、最後の例のテーブルのみが実行されるということです。 これは、サンプルテーブルの乗算とは別だと思います。

例を記入します。 あなたは次のことを求めていますか?

Scenario Outline:
  Given <a> and <b>

  Examples:
    | a  |
    | a1 |
    | a2 |
    | a3 |
    | a4 |

  Examples:
    | b  |
    | b1 |
    | b2 |
    | b3 |
    | b4 |

a1 / b1、a1 / b2、a1 / b3、a1 / b4、a2 / b1などの組み合わせで16のシナリオを実行する場合。このようなものをサポートするために、例をオーバーロードする代わりに別のキーワードが必要だと思います。この設定は現在、最初の4 bが未定義で、次の4aが未定義の8つのシナリオになります。

全てのコメント16件

これがまだ機能していないことに驚いています。 それは間違いなくJavaとRubyで行います...

私はそれが実行されるべきであることに同意します。

https://github.com/Behat/Behat/issues/1082は、最後の例のテーブルのみが実行されるということです。 これは、サンプルテーブルの乗算とは別だと思います。

例を記入します。 あなたは次のことを求めていますか?

Scenario Outline:
  Given <a> and <b>

  Examples:
    | a  |
    | a1 |
    | a2 |
    | a3 |
    | a4 |

  Examples:
    | b  |
    | b1 |
    | b2 |
    | b3 |
    | b4 |

a1 / b1、a1 / b2、a1 / b3、a1 / b4、a2 / b1などの組み合わせで16のシナリオを実行する場合。このようなものをサポートするために、例をオーバーロードする代わりに別のキーワードが必要だと思います。この設定は現在、最初の4 bが未定義で、次の4aが未定義の8つのシナリオになります。

@aslakhellesoyはjava / ruby​​で動作するサンプルテーブルを

私がBehatチケットから取ったものから、彼らが達成したいことは、テーブルを増やすことではなく、彼らが表現するものに基づいて例をグループ化することです。

    Examples: of ordinary Latin character inputs
      | input |
      | a     |
      | z     |
      | 0     |

    Examples: of Unicode inputs
      | input  |
      | U+0046 |
      | U+0058 |

    Examples: of invalid inputs
      | input  |
      | <      |
      | </     |

複利ではなく:

    Examples: Usernames
         | username   |
         | admin      |
         | user       |
         | maintainer |
         | moderator  |

    Examples: Passwords
         | password |
         | valid    |
         | invalid  |

私は間違っているかもしれませんが

「複数の」サンプルテーブルを読み間違えましたが、これは機能します。 サンプルテーブルの乗算(行列の乗算?)は機能しません。 それは人には少しわかりにくいと思います。

より小さなテーブルを生成するためにペアワイズを検討しましたか?

Behatチケットを投稿して誤解を招きました。 キーワードが異なっていても、charlierudolphが書いたものが正確に必要です。

どうも。

@znevrly現在の例と@aslakhellesoyペアワイズのようなものをガーキンに組み込みたいと思いますか? (私たちが素晴らしいインターフェースを決定できれば)

ガーキンにペアワイズで組み込むべきではないと思います-それはフィーチャークリープでしょう。 スタンドアロンツールを使用してテーブルを生成し、それを機能ファイルに貼り付ける方がよいと思います。

それはあまり快適に聞こえません。 何か案は? :)

何についてのアイデアはありますか?

テーブルを手動で生成する必要なしに、記述された動作(サンプルテーブルの乗算または行列の乗算)を実現するためのキーワードを用意する。

シナリオのアウトラインに貼り付けるテーブルを生成するには、ペアワイズツールを1回実行するだけでよいことに気づきましたか? 何があなたを不快にさせるのかわかりません。

しかし、私は多くのシナリオで数十の機能ファイルを持っています。 「2番目の」例の場合、テーブルは多くのコピー貼り付けであり、実行されるかどうかは非常に明確です。 また、「2番目の」サンプルテーブルに余分な行がある場合は、マージされたすべてのテーブルを再生成する必要はありません。

生成されたテーブルの詳細は、すべての可能な組み合わせがあるかどうかはあまり明確ではありません。 :(

ある時点でGherkinプリプロセッサAPIを追加する可能性があります。 その場合、あなたが求めている機能は、そのAPIを使用して実装する必要があると思います。 現時点では優先事項ではないため、緊急の場合は、Gherkinファイルを自分で生成することをお勧めします。

私は例でこれを使用する方法-メールの形式にする必要があり、「FIRST_NAME。 [email protected]

例の表からシナリオを1つだけ選択することは可能ですか? 私が持っているとしましょう

A | B | C |
| バンドル| 「HD」| 'SHP' |
| PZ | 「HD」| 'SHP' |

ある機能ファイル(たとえばhelloWorld.feature)から、上記の表のシナリオの概要を持つ別の機能(Print.feature)ファイルを呼び出している場合、最初の機能ファイルから実行するシナリオを選択することはできますか?

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