2016-06-21 9 views
0

TestNG 6.3.1〜6.9.10では、以下のような2つのクラス間の依存関係を作成しようとしています。TestNG dependsOnGroupsが<run>の下で動作していないようです。<include>

class A { 
    @Test(groups={"GA"}) 
    public void testA() { 
    } 
} 

class B { 
    @Test(groups={"GB"}, dependsOnGroups={"GA"}) 
    public void testB() { 
    } 
} 

私はちょうどtestng.xml中にクラスA & Bをリスト場合は動作します。

<classes> 
    <class name="pkg.A"></class> 
    <class name="pkg.B"></class> 
</classes> 

私は唯一のテストケースを選ぶしたい場合に、 "GB" 属し、前のものに同じ動作を期待して、

<groups> 
    <run> 
     <include name="GB" /> 
    </run> 
</groups> 
<classes> 
    <class name="pkg.A"></class> 
    <class name="pkg.B"></class> 
</classes> 

その後、TestNGのは、「DependencyMap ::メソッド

を不平を言いますB.testB()[pri:0、instance:[email protected]] "は存在しないグループ" GA "に依存します。

なぜTestNgはGAを認識しませんか?どのようにグループの依存関係を維持しながら実行するテストケースのいくつかのグループを選び出すには?前もって感謝します。

答えて

0

TestNG dependsOn *は、特定の実行のテストを注文するためにのみ使用されます。

testng.xmlは、特定の実行のテストを選択するために使用されます。

必要なものをすべて指定しないと、すでにテストが順調に行われているため、dependsOn *が無視されることがあります。

グループを指定しないと、すべてアクティブになります。

詳細はdocumentationをご確認ください。

+0

ありがとうございます。明確にするために、Suppostには3つのクラスA、B、Cがそれぞれ3つのグループGA、GB、GCに属しています。 GBとGCの両方がGAに依存しています。実行するGAとGBだけを選択したいと思います。そのような場合のtestng.xmlの例を教えてください。 – ShenLei

+0

包含の代わりに除外を試しましたか? – juherr

+0

除外するグループが多数ある場合は実用的ではありません。 – ShenLei

0

この動作はTestNGデザインによるものです。を提供していない場合、TestNGはハード依存関係を考慮します。ハード依存関係の場合、実行構成にはそれに依存する方法/グループが含まれていなければなりません。 dependency documentationを参照してください。

+0

ありがとうございました。分かりやすくするために、10個のクラスBase、C1、C2..C9がそれぞれ10個のグループGBase、G1、G2..G9に属しています。 G1..9はすべてGBaseに依存します。実行するGBaseとG1だけを選択したいと思います。 DependencyMap :: Methodエラーをトリガしないtestng.xmlの実行可能な例を教えてください。 – ShenLei

+0

1つの特定のグループ<=> 1つの特定のクラスの場合、ここでグループを使用していますか? と 'dependsOnMethods'(他のクラスのメソッドでも動作するはずです)を使用してください。 – juherr

+0

木のようなグループ依存関係をシミュレートし、1つのブランチ上でのみtestngを実行する方法を見つけようとします。一方、dependsOnMethodsはクラス間では動作しません:http://stackoverflow.com/questions/7692129/testng-dependsonmethods-from-different-class – ShenLei

関連する問題