シナリオ概要の使い方はどうですか?これは、各タスクをシナリオとして単独で実行します。
Given step
が繰り返されるのを避けるために、静的ブール変数をステップ定義javaに設定してフラグとしてチェックすることができます。
Scenario Outline:
Given I create a process
When I execute the following task <TaskName> with parameters:
|<Parameter1>|<Parameter2>|<Parameter3>|
Then each task <TaskName> should have outcomes:
|<Outcome1>|<Outcome2>|<Outcome3>|
Examples:
|TaskName|Parameter1|Parameter2|Parameter3|Outcome1|Outcome2|Outcome3|
|task1|t1param1|t1param2|t1param3|t1out1|t1out2|t1out3|
|task2|t2param1|t2param2|t2param3|t2out1|t2out2|t2out3|
.......
可変数のパラメータと結果がある場合は、記号で区切られた文字列を使用して変更します。ステップ定義で@Transform annotation
を使用して、パラメータまたは結果のオブジェクトを取得できます。
Scenario Outline:
Given I create a process
When I execute the following task <TaskName> with parameters <parameters>
Then each task <TaskName> should have outcomes <outcomes>
Examples:
| TaskName | Parameters | Outcomes |
| task1 | t1param1,t1param2,t1param3| t1out1,t1out2,t1out3 |
| task2 | t2param1,t2param2,t2param3| t2out1,t2out2,t2out3 |
.......
他のタスクの結果に関する一つのタスクの任意の依存関係があるなら、あなたはあなたがそれらを処理する方法で注意する必要があります。いずれかのタスクで必要に応じて現在のThen thenステップの後に、現在のプロセスなどを強制終了するようなリセットステップを追加することもできます。
最後のシナリオ---これはシナリオIDが同じであることに依存する大きなハックです。 最後の手順のサンプル表のシナリオ数を以下のように追加します。
Scenario Outline:
Given I create a process
When I execute the following task <TaskName> with parameters <parameters>
Then each task <TaskName> should have outcomes <outcomes>
***And Last step to run for last scenario 3***
Examples:
| TaskName | Parameters | Outcomes |
| task1 | t1param1,t1param2,t1param3| t1out1,t1out2,t1out3 |
| task2 | t2param1,t2param2,t2param3| t2out1,t2out2,t2out3 |
| task3 | t3param1,t3param2,t3param3| t3out1,t3out2,t3out3 |
Include in StepDefinition.java
private Scenario scenario;
@Before
public void before(Scenario sce) {
this.scenario = sce;
System.out.println("SCENARIO ID -- " +scenario.getId());
}
シナリオの概要 - **feature-description ; scenariooutline-description ; example-description ; rownumber + 1**
のような文字列が表示されます。たとえば、 - validating-sample;so1;se1;2
です。これは、examplesテーブルの最初の行になります。
シナリオの大文字小文字の場合、区切り記号「;」で区切ることができます。そして、このステップ
When I execute the following tasks with parameters:
|Task Name| param1 | param2| param3|
...
これはキュウリを使用するには、本当に貧しいの方法ですを持っていることによってgetCurrentExamplesRow()
ありがとうGrasshopper、私が実行しているタスクはお互いに依存しており、指定された順序で実行する必要があります。タスクを呼び出すためのステートレスな呼び出しであるため、これが問題になるとは思わない。 – IanWatson
私はこれを試してすぐに回答します – IanWatson
シナリオ概要から脱出する方法はありますか?つまり、例の反復の後に単一のthen文を実行するか? – IanWatson