2016-10-20 36 views
0

testngを使用して並列実行を実行しようとしています。 私は4時間のテストを並行して実行しようとしています。しかし、それは1回だけ実行されます。testngを使用した並列実行

testng.xml

<suite name="My suite" parallel="methods" thread-count="4"> 
    <test name="Default test" group-by-instances="true"> 
    <classes> 
     <class name="org.com.DemoClass"/> 
    </classes> 
    </test> <!-- Default test --> 
</suite> <!-- Default suite --> 

デモクラス。

public class DemoClass {  
    @Test 
    public void method1() throws InterruptedException { 
     long id = Thread.currentThread().getId(); 
     System.out.println("Before test-method. Thread id is: " + id); 
    } 
} 

貴重なご意見をお寄せください。

+0

スレッドカウントを追加しても、テストメソッドが複数回実行されるわけではありません。これは、それらが実行に利用可能な複数のスレッドであることを意味します。 1つのテストでは、1回だけ実行されるメソッドが1つしかありません。 @Testアノテーションには、innvocationCountパラメータが含まれます。ドキュメントを読む - http://testng.org/doc/documentation-main.html#parallel-running – Grasshopper

+0

複数のテストケースに対して並列実行を実行する方法の例を教えてください。 –

答えて

0

あなたは@Test注釈にパラメータを追加してみてくださいすることができます @Test(threadPoolSize = 4, invocationCount = 4) 4つの異なるスレッドからテスト4回を呼び出します。

+0

しかし、テストケースは1つしか適用されません。 私は複数のテストケースがあると仮定すると、すべてのテストケースにパラメータを追加する必要があります。すべてのテストケースの実行回数を増減する必要がある場合変更が大きな課題になります。 –

0

あなたが書いた@Test注釈付きメソッドのそれぞれが、自分自身でinvocationCount属性を明示的に追加する必要なしに、(n個の)並列実行または順番に実行される必要がある場合は、 IAnnotationTransformerを利用して、@Test注釈付きメソッドのオンザフライ変更値を使用できるようにする必要があります。このリスナーは、<listeners>タグを使用したスイートファイルか、Service Loaders経由で注入することができます。リスナーに関する一般的な情報は、おそらくthis私のブログ記事をご覧ください。

関連する問題