执行JUnit 4测试用例和TestSuite的问题

时间:2012-12-13 14:49:00

标签: java junit junit4 system-properties

  

可能重复:
  @parameters method is executed before @beforeclass method

我在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使用。但TestCase不知道从哪个套件调用它们。所以我更喜欢像Systemproperty这样的东西。

感谢您的帮助

Kirschmichel

0 个答案:

没有答案