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

所以方法以错误的顺序被调用。我想,套件的 BeforeClass 在所有 TestClasses 之前被调用。

我该如何解决这个问题。我需要在套件中设置一个参数,它将被多个测试用例使用。但是 TestCases 不知道它们是从哪个套件调用的。所以我更喜欢 Systemproperty 之类的东西。

感谢您的帮助

基尔施米歇尔

4

0 回答 0