1

で実行される JUNIT テストがありPowerMockRunner.classます。
現在、新しいテストを追加していますが、両方のテストを同時に実行したいと考えています。 これは、同時実行エグゼキューターを
使用するか、自分で作成するだけで実行できることを知っています。 これを行うために PowerMock で利用できるものはありますか?@RunWith(ConcurrentTestRunner.class)

サンプルコード:

@RunWith(PowerMockRunner.class)
@PrepareForTest(ClassWithStaticMethod.class)
@SuppressStaticInitializationFor("ClassWithStaticMethod")
public class PowerMockTest {

    @org.junit.Test
    public void myTest() {
     ...
    }

    //This new Test
    @org.junit.Test
    public void myNewTest() {
     ...
    }

}
4

2 に答える 2

0

を使用して、他の jUnit ランナーで PowerMock を実行できます@PowerMockRunnerDelegate。詳細はこちら。で動作するかどうかはわかりませんConcurrentTestRunner。しかし、あなたは試すことができます。

于 2016-10-22T14:07:29.817 に答える
0

たぶん、あなたが予想していなかった答えかもしれません: そうしないでください - テストを並行して実行しないでください。

おわかりのように、単体テストの主な目的は、本番コードのバグをできるだけ早く特定して修正できるようにすることです。したがって、そこにたどり着くために、テストコードをできるだけ「シンプル」にする必要があります。

つまり、テストを並行して実行すると、確実に物事がより複雑になります。最悪の場合、何か「不安定な」ものを作成します。競合状態が隠れているため、テストが並行して動作することがありますが、まれに、並行して実行すると失敗することがあります。

それを超えて: 単体テストは、そもそも非常に高速に実行する必要があります。したがって、テストを並行して実行してもあまりメリットはありません。

于 2016-09-21T13:24:50.180 に答える