Junit4:如何动态创建测试套件

时间:2013-07-03 06:27:51

标签: java unit-testing junit junit4 junit3

我的项目中有大量的JUnits。其中,我想通过从属性文件中查找类来执行某些集合。

在JUnit 4之前:

public class TestSuite
{
    public static Test suite()
    {
       TestSuite suite = new TestSuite();
       Class [] array = readFromPropertyFile();

       for (Class tempClz : array)
       {
           suite.addTestSuite(tempClz);
       }

    }
}

但是在Junit4中,我被迫在编译时对类进行注释,如下所示:

@RunWith(Suite.class)
@Suite.SuiteClasses({
   Test1.class,
   Test2.class
})
    public class TestSuite
    {
    }

我不能,切换回Junit 3.x因为,所有测试类都不再扩展TestCase意味着Test1.class不是Class<? extends TestCase>类型

在这种情况下,有没有办法动态配置测试套件?

1 个答案:

答案 0 :(得分:2)

cpsuite项目使用自定义注释来确定基于模式在运行时运行的测试。这不是你想要的,但这是一个好的开始。您可以获取它的源代码,并使用读取属性文件替换“查找测试”部分。

请注意,对于不同版本的JUnit 4.X,注释/代码是不同的。如果您仍然使用JUnit 4.4或更低版本,则需要较旧的版本。