2016-10-21 6 views
0

私はテスト内に10のクラスを持つtestngスイートファイルを持っています。今クラス1、クラス2、Class3に付き3つの順に優先順位1,2,3と方法及びそれを有するtestng preserve-orderが優先順位で動作しない

<classes> 
<class name = "Class1"> 
<class name = "Class2"> 
<class name = "Class3"> 
</classes> 

言います。 preserve-order = "true"のスイートでJenkinsでジョブを実行すると、テストはclass1-priority1テスト、class2-priority1、class3-priority1、class1-priority2、class2-priority2などとして実行されます。

私は必要ですクラス1に関連付けられたすべてのテストがinorderで実行され、次にクラス2からクラス3に実行されます。

誰かがこの動作がなぜなのか教えていただけますか?

答えて

0

デフォルトの順序は、JavaリフレクションAPIによって異なります。 <メソッド>の順にメソッド名を含めることができます。これは扱いにくいかもしれません&ファイルがより大きくなる間、不器用に見えるかもしれません。それにもかかわらず、それはこの点であなたを助けるかもしれません。

例のxml:以前のソリューションよりも他の

<class name="Fully qualified class name without extension"> 
    <methods> 
     <include name="method_1" /> 
     <include name="method_1" /> 
      ..... 
      ..... 
     <include name="method_N" /> 
    </methods> 
</class> 

、あなたは注釈を使用して、テストメソッドのテストケースのための依存関係を追加することができます。しかし、xmlの変更/変更は、コードを変更するよりはるかに良いでしょう。

+0

クラス内のテストをグループ内で実行できるようにする必要があります。すべてのクラスから優先順位を取りません。 – ChanChow

0

あなたが記述する順序は予期されたものです。

優先度の代わりに、dependsOnMethodsを使用するようにしてください。

関連する問題