大規模なパブリッシングシステムに対して何百ものテストを実行しており、TestNGを使用してテストをパラレル化したいと考えています。しかし、私はこれを行う簡単な方法を見つけることができません。各テストケースは、このパブリッシャのインスタンスをインスタンス化し、いくつかのメッセージを送信し、それらのメッセージがパブリッシュされるのを待ってから、パブリッシュキューの内容をダンプして、予想される結果と比較します。非常に多くのテストでこれを行います(スレッドを使用して並列化を行っても、完了までには非常に長い時間がかかります)。TestNG dataProviderの変更方法
このようなシステムをテストするには、システムを一度起動し、メッセージを送信するためのすべてのテストを実行し、パブリッシュが実行されるのを待ってから、すべての出力をダンプし、テストと確認する。たとえば、代わりに以下の:
@Test
public void testRule1() {
Publisher pub = new Publisher();
pub.sendRule(new Rule("test1-a"));
sleep(10); // wait 10 seconds
pub.dumpRules();
verifyRule("test1-a");
}
我々は、次のようなものをやってみたかった:
あなたはdataProviderにsendMode = true
ですべてのテストを介して実行してから実行して、その後
dumpAllRules()
を実行してい
@Test
public void testRule1(bool sendMode) {
if(sendMode) {
this.pub.sendRule(new Rule("test1-a"));
}
else {
verifyRule("test1-a");
}
}
すべてのテストを通して再びsendMode = false
で問題は、TestNGがsendMode = true
で1回、sendMode = false
で1回、同じメソッドを2回呼び出すことです。 TestNGでこれを達成するにはどうしますか?
ありがとうございます!