3

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

在 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>

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

4

1 回答 1

2

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

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

于 2013-07-03T23:22:54.723 回答