2017-03-15 5 views
0

4つの異なるクラスを持つtestng.xmlファイルを実行したいと思います。私は、もう一方が終わった後、それぞれを走らせたい。したがって、クラス1が終了するとクラス2が開始し、クラス2が終了するとクラス3が実行を開始します。これまで私はこのコードを書いていましたが、同時にすべてのクラスをトリガーしました。でも、私はparallel = falseを試してもうまくいきませんでした。すべてのヘルプははるかにappreciated.ThanksTestNGクラスを次々と実行する方法

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > 
<suite name="Smoke Test" parallel="false" preserve-order="true" verbose="2"> 
    <test name="Test 1"> 
     <classes> 
      <class name="class1"></class> 
     </classes> 
    </test> 
    <test name="Test 2"> 
     <classes> 
      <class name="class2"></class> 
     </classes> 
    </test> 
    <test name="Test 2"> 
     <classes> 
      <class name="class3"></class> 
     </classes> 
    </test> 
</suite> 

答えて

0

だろうそれは非常に同じ設定ではないのですが、私たちは、「次」を使用一連の処理を持っている私たちの仕事のいくつかの属性:

<batch:job id="JOB_NAME" job-repository="jobRepository"> 
    <batch:step id="process1" next="process2"> 
     <batch:tasklet> 
      <batch:chunk> 
       processing info 
      </batch:chunk> 
     </batch:tasklet> 
    </batch:step> 

    <batch:step id="process2" next="process3"> 
     <batch:tasklet> 
      <batch:chunk> 
       processing info 
      </batch:chunk> 
     </batch:tasklet> 
     </batch:tasklet> 
    </batch:step> 

この月のような何かあなたのために働く。

+0

このXMLはTestNGの世界でどのように機能しますか?あなたは精巧に手伝ってもらえますか? –

0

すべてのテストクラスを同じ<test>タグに追加して実行するのはなぜですか?

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > 
<suite name="Smoke Test" parallel="false" preserve-order="true" verbose="2"> 
    <test name="Test 1"> 
     <classes> 
      <class name="class1"></class> 
      <class name="class2"></class> 
      <class name="class3"></class> 
     </classes> 
    </test> 
</suite> 

これは、基本的に各テストクラスのテストメソッドを順番に実行します。あなたの@TestメソッドのそれぞれにSystem.out.println(Thread.currentThread().getId());を追加することでこれを確認できます。同じスレッドIDが印刷されているはずです。

0

あなたは@Testアノテーションで "優先度"と "dependsOnGroups"を使用することがあります。このパラメータは、注文にとってより重要です(6.10変更点https://github.com/cbeust/testng/blob/master/CHANGES.txtを参照)。

"優先度"の例。

このコードは: "dependsOnGroups" と

Class1 test1 
Class2 test1 
Class1 test2 
Class2 test2 

例:

public class Class1 { 

    @Test(priority = 1) 
    public void test1() { 
     System.out.println("Class1 test1"); 
    } 

    @Test(priority = 2) 
    public void test2() { 
     System.out.println("Class1 test2"); 
    } 

} 

public class Class2 { 

    @Test(priority = 1) 
    public void test1() { 
     System.out.println("Class2 test1"); 
    } 

    @Test(priority = 2) 
    public void test2() { 
     System.out.println("Class2 test2"); 
    } 

} 

結果を持っています。

このコード:

public class Class1 { 

    @Test(groups = {"someGroup"}) 
    public void test1() { 
     System.out.println("Class1 test1"); 
    } 

    @Test(dependsOnGroups = {"someGroup"}) 
    public void test2() { 
     System.out.println("Class1 test2"); 
    } 

} 

public class Class2 { 

    @Test(groups = {"someGroup"}) 
    public void test1() { 
     System.out.println("Class2 test1"); 
    } 

    @Test(dependsOnGroups = {"someGroup"}) 
    public void test2() { 
     System.out.println("Class2 test2"); 
    } 

} 

は同じ結果になります:

Class1 test1 
Class2 test1 
Class1 test2 
Class2 test2 
0

テスト名タグは一意である必要があり、私はクラス2 &クラス3のためのテスト名を参照してくださいなぜそれがだ、同じです問題が発生しています。

問題が引き続き表示される場合は、ログ/追加情報を追加してください。

関連する問題