1

重複の可能性:
@parameters メソッドは @beforeclass メソッドの前に実行されます

JUnit 4 TestsUites とパラメータ化されたテストで問題に直面しています。

私のスイートでは、次のように SystemProperty を設定したいと考えています。

@RunWith(Suite.class)
@SuiteClasses({ParameterizedTestCase.class })
public class TestSuite {

     @BeforeClass
     public static void setUpSuite() {
        System.out.println("suite");
        System.setProperty("propertyToSet", "propertyToSet");
     }

}

ParameterizedTestCase では、次のようにプロパティを出力するために generateParams() を宣言しました。

@RunWith(Parameterized.class)
public class ParameterizedTestCase{
     @Parameters
     public static Collection<Object[]> generateParams() {
     System.out.println("Parameter: " + System.getProperty("propertyToSet"));
     }

    @Test
    public void testSomething() {
        //doSometing
    }
}

私が得る出力は次のとおりです。

Parameter: null
suite

したがって、メソッドは間違った順序で呼び出されます。Suite の BeforeClass は、すべての TestClasses の前に呼び出されると思いました。

この問題を解決するにはどうすればよいですか。複数のテストケースで使用されるスイートにパラメーターを設定する必要があります。しかし、TestCases は、どのスイートから呼び出されたかを知りません。だから私はシステムプロパティのようなものを好みます。

ご協力いただきありがとうございます

キルシュミッシェル

4

0 に答える 0