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

标签 java unit-testing junit junit4 junit3

<分区>

我的项目中有大量的 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> 类型

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

最佳答案

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

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

关于java - Junit4:如何动态创建测试套件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17441105/

相关文章:

entity-framework - 单元测试 EF - 如何从 BL 中提取 EF 代码?

angularjs - Angular 单元测试: Error: Unexpected request: GET

java - 完全不相关的代码行出现断言错误 - 学校项目的 Junit 测试

java - 如何模拟调用其他没有返回值的方法的方法

java - java websocket 上线后如何发送离线用户的消息?

java - 空指针异常(未解决)和无法将 WSResponse 映射到 play 2.4 中的结果(这部分已解决。我猜)

java - 如何从 URL 重定向到 Codename One 应用程序?

java - 查找对象的类

javascript - getDOM() 在 Angular 2 规范中如何工作

java - JUnit中的失败和错误有什么区别?