TestNG @Factory クラス、ドライバーを作成する基本クラス、およびテストを実行するための複数の @Test メソッドを含む 2 つのテスト クラスがあります。以下の @Factory クラスが与えられます。
public class SampleFactory {
@Factory(dataProvider="DeviceDetails")
public synchronized Object[] factoryMethod(String deviceID){
return new Object[] {new IndTest(deviceID),new IndTestTwo(deviceID)};
}
@DataProvider(name="DeviceDetails",parallel=true)
public Object[][] passDeviceID(){
return new Object[][] {{"02157DF2DA5A1C09"},{"D5588B67"}};
}
}
IndTest
とIndTest2
は 2 つのテスト クラスです。基本クラスを拡張し、基本クラスのコンストラクターを呼び出してドライバーを作成します。特定のデバイス ID に対して特定の時点で使用できるドライバーのインスタンスは 1 つだけです。
私が直面している問題は、IndTest と IndTest2 の両方が同時に実行されていることです。テストは特定のデバイスで同時に異なるテストを実行しようとします。最初に IndTest クラスを呼び出して、デバイス 1 とデバイス 2 のそのクラス内でテストを実行し、次に IndTest2 に移動して同じ種類の実行を実行する必要があります。以下は、私が現在使用している TestNG xml です。
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Test_Suite" skipfailedinvocationcounts="false" junit="false" parallel="classes"
data-provider-thread-count="100" annotations="JDK" group-by-instances="true"/>
あなたのアイデアを待っています:)