状況: a() と b() の 2 つのテストがあります。b() は、「dependsOnMethods」パラメーターを使用して a() に依存するように作成されます。両方のテストに異なるデータ セットがあります。テストの実行時にデータの順序が確実に保持されるようにする方法はありますか?
例:
@DataProvider(name = "test1")
public Object[][] createData1() {
return new Object[][] {
{ "Google" },
{ "Microsoft"},
};
}
@DataProvider(name = "test2")
public Object[][] createData2() {
return new Object[][] {
{ "Apple"},
{ "Yahoo"},
};
}
@Test(dataProvider = "test1")
public void verifyData1(String n1) {
System.out.println(n1);
}
@Test(dataProvider = "test2", dependsOnMethods="verifyData1")
public void verifyData2(String n1) {
System.out.println(n1);
}
結果が常に Google、Apple、Microsoft、Yahoo であることを望みます。またはMicrosoft、Yahoo、Google、Apple
ただし、Google、Yahoo、Microsoft、Apple、または Google、Microsoft、Apple、Yahoo ではありません。
つまり、test1 がそのデータ プロバイダーの最初のパラメーター セットを使用して実行される場合、test2 もそのデータ プロバイダーの最初のパラメーター セットを使用して実行される必要があります。test1 の dataprovider の 2 番目のパラメータ セットが最初のセットの前に実行されるかどうかは問題ではありません。ただし、最初のセットを実行する前に、2 番目のテストもそのデータ プロバイダの 2 番目のパラメータ セットで実行される限りは問題ありません。これを達成する方法はありますか?
これは、group-by-instances パラメータを使用して修正できることに気付きました。(古いバージョンを使用していたため、testng xmlで見つけられないオプションです。)testNg のアップグレードを試みて、更新を投稿します。