テストメソッドを順番に実行したい。私は、preserve-order を true に設定して testng.xml のクラスを使用しました。
<test name="group-test" preserve-order="true" >
<classes>
<class name="com.dependency.ClassA">
<methods>
<include name="create"/>
<include name="enter"/>
<include name="delete"/>
</methods>
</class>
</classes>
</test>
そして私のテストクラスは
public class ClassA {
@Test()
public void Create() throws Exception
{
System.out.println("in method create");
}
@Test(dependsOnMethods= "Create")
public void Enter() throws Exception
{
System.out.println("in method Enter");
}
@Test()
public void delete() throws Exception
{
System.out.println("in method delete");
}
テストを実行した後、私の出力は
メソッドcreate、
メソッドdelete、
メソッドenterにあります
しかし、私が望むのは、最初に「作成」、次に「入力」、「削除」メソッドを実行することです。ここで、delete は独立したテスト メソッドです。
Cedric Beustが、依存関係を使用するか、testng.xmlにテストメソッドを明示的に含めることができると述べているGoogleグループの質問
を読みました。なぜこれが施行されるのか理解できませんか?独立したテスト メソッドと依存するテスト メソッドを任意の順序で一緒に実行したい場合はどうすればよいですか? 独立したメソッドが最初に実行され、次に依存するメソッドが実行されることを確認しました。
理想的には、依存関係は順序を維持するためではなく、前のメソッドが失敗した場合にテストをスキップするためのものであるべきです。TestNG が持っている強制の種類は、多くの問題を引き起こしています!