前のテストの実行の成功に依存する testNG テストを作成しようとしています (たとえば、アカウントを作成して詳細を編集したいとします)。データプロバイダーと組み合わせたいです。これは論理的に思えたので、dependsOnMethods を使用することにしましたが、予想とは異なる動作をすることに気付きました。以下の例では、最初のデータ セットが合格条件を提供し、もう 1 つのデータ セットが不合格条件を提供するため、テスト「3」が 1 回スキップされ、1 回実行されることを期待しています。残念ながら、「dependsOnMethods」の背後にある概念が欠けているようです。多分私がそれを行うことができる他の方法がありますか?助けてくれてありがとう。
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import org.testng.Assert;
public class simpleTest {
@DataProvider(name = "provided data")
public static Object[][] data() throws Exception {
Object[][] data = new Object[][] {
{true},
{false}
};
return data;
}
@Test(dataProvider = "provided data")
public void one(boolean cond){
System.out.println("******** 1");
}
@Test(dataProvider = "provided data")
public void thisfailssometimes(boolean cond){
System.out.print("******** 2 !!!");
if (cond) {System.out.println("PASS");}else{System.out.println("FAIL");};
Assert.assertTrue(cond);
}
@Test(dataProvider = "provided data",dependsOnMethods = {"thisfailssometimes"})
public void three(boolean cond){
System.out.println("******** 3");
}
}