2017-07-13 13 views
0

私は優先順位に基づいてテストメソッドを実行する際に問題に直面しています。以下は、私のコードはメソッドの優先順位

Class TestHarness{ 
     @BeforeSuite 
     setUP(){ } 

     @AfterSuite 
     tearDown(){} 
} 

XYZ extends TestHarness{ 

     @Test(Priority=1) 
     verifyXYZ{} 
} 

ABC extends TestHarness{ 
     @Test(Priority=2) 
     verifyABC{} 
} 

Testng.xml

<suite name="SmokeTestSuite"> 
    <listener class-name="TestResultListener" /> 
    <test name="SmokeTests" > 
     <classes> 
     <class name="XYZ" />    
     <class name="ABC"/>     
     </classes> 
    </test> 
</suite> 

ABC.verifyABC()方法は前XYZ.verifyXYZ()の実行を取得中略れます。たとえpreserve-ordertestng.xmlにfalseで設定されていなくても。

testng.xmlで定義されたテストクラスの順序に基づいてすべてのテストを実行する主な目的。ソリューションの下に試みたが、うまくいきませんでした:

  1. testng.xmlで)すべてのクラスの

    再優先度試験方法をIMethodInterceptorを拡張することによって。

    結果:この場合、実行順序であったが、すべてのテストクラスのすべてのテストメソッドの

    i. BeforeSuite Method 
        ii. ABC.verifyABC method 
        iii. override intercept method 
    
  2. 指定された優先何とかこれも私のために動作しませんでした。

私はtestng 6.11バージョンを使用しています。誰でもこの文脈で私を助けることができますか?

ありがとうございます!

答えて

0

preserve-orderpriorityよりも重要である。

オーダー機能の階層(より重要にはあまり重要から):groupByInstance、preserveOrder、優先順位、dependsOnGroups、dependsOnMethods

https://github.com/cbeust/testng/blob/master/CHANGES.txt#L75

ですから、TestNGは矛盾が生じた場合にpriorityの前にpreserve-orderを尊重します。

優先度を削除すると、TestNGはpreserve-orderを尊重し、スイートファイルに従ってテストを実行します。

関連する問題