2016-10-18 34 views
0

TestNGの最新バージョンを使用していますが、テストケースを書き込まれた順番で実行できません(優先アノテーションタグを避けて)。優先度を使用しないTestNGでの実行順序

enter image description here

import org.testng.annotations.Test; 
public class NewTest { 
@Test 
public void b() { 
    System.out.println("inside b method"); 
} 
@Test 
public void a() { 
System.out.println("inside a method"); 
} 
} 

私もIMethodInterceptorまだありません行くを使用していました。

testng.xmlで

も追加のリスナー:

<listeners> 
<listener class-name="testngdemo.PriorityInterceptor" /> 
</listeners> 

が、それでも次の出力

inside a method 
inside b method 

を得ることが優先インターフェイス:

import java.lang.annotation.Retention; 
import java.lang.annotation.Target; 
import static java.lang.annotation.ElementType.METHOD; 
import static java.lang.annotation.ElementType.TYPE; 

@Retention(java.lang.annotation.RetentionPolicy.RUNTIME) 
@Target({METHOD, TYPE}) 
public @interface Priority { int value() default 0; } 
+0

http://stackoverflow.com/questions/ 2669576 /このテストで何が問題になっているのか? –

+0

@ImeshaSudasingha私はjacobcsと同じ手順に従ったが、アルファベット順に実行している。 –

+0

@ImeshaSudasingha私はメソッドIDを取得するが、実行されていない。 優先度は[MethodInstanceメソッド= NewTest.b()[pri:0、インスタンス:[email protected]] instance = [email protected]] メソッド:b結果:0 –

答えて

0

あなたがしようとしている何が本当に明確ではないが、 abの間に依存関係がある場合、ちょうどthe dependsOnMethods featureを使用します。

public class NewTest { 
    @Test 
    public void b() { 
    System.out.println("inside b method"); 
    } 

    @Test(dependsOnMethods = { "b" }) 
    public void a() { 
    System.out.println("inside a method"); 
    } 
} 
+0

私は依存関係はありません。私が知っている限り、testngはアルファベット順にメソッドを実行します(私が間違っていれば私を修正してください)。 –

+0

テストケースが書き込まれた順番通りに実行したい。 testng priorityアノテーションタグを使用しないでください。 –

+0

アプリケーションをどのように実行しますか? testng xmlを使用するか、eclipse/intellij testngプラグインを使用していますか?プラグインを使用していない場合は、私の以前の回答に記載されている順序でテストメソッドを追加してください。 –

1

あなたはTestNGののXMLからテストケースを実行するなら、あなたはこのようにしたいために、あなたのテストメソッドが含まれます。

<classes> 

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

     <class name="test.Test2" /> 
    .... 
    .... 

</classes> 
+0

提案ありがとう:) :)実際にそれは動作しますが、私は20-30以上の方法がある場合は、それは不器用に見えます。 –

関連する問題