0

TestNG を使用して自動テストを実行しています。TestNG を選択した理由は、変数入力をテスト メソッド example public void testXX( String userId )に送信でき、userId はテストごとに変更できるためです。

以下のコードは、テストの実行に使用できる 3 つの異なる userId を示しています。したがって、まったく同じテストが、3 人の異なるユーザーごとに 3 回実行されます。この機能は素晴らしく、各ユーザーが異なるプロファイルを使用しているため、さまざまなシナリオで複数のテストを行うことができます。

// All valid Pricing Leads
@DataProvider(name = "userIds")
public Object[][] createPricingLeadUsersParameters() {
   return new Object[][] {
      { "TestUser001" },
      { "TestUser002" },
      { "TestUser003" }
   };
}

@Test( dataProvider = "userIds" )
public void createGroup( String userIds) {
    ............
 }

私が現在抱えている問題は、特定の状況で userId を 1 つしか使用できないか、そうでなければすべてのテストが失敗することです。まったく同じテストを維持したいのですが、上記の 3 つではなく、userId のみを渡します。コマンド ラインでこの変数を作成するように TestNG を構成する方法があるため、3 つの定義済みを使用することもありますが、別の条件下では、3 つのうちの 1 つまたは新しい userId になりますか?

4

1 に答える 1

0

もちろん、これを行う方法はたくさんあります。TestNGを実行するときにシステムプロパティを渡すのはどうですか?

java -Dfoo=bar org.testng.TestNG...

foo次に、データプロバイダーはwithの値をテストし、System.getProperty()それに応じて何を返すかを調整できます。

于 2012-07-10T02:52:57.327 に答える