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 は、どのスイートから呼び出されたかを知りません。だから私はシステムプロパティのようなものを好みます。
ご協力いただきありがとうございます
キルシュミッシェル