【发布时间】:2012-06-19 12:28:32
【问题描述】:
我想知道是否有任何方法可以在 junit 4 中动态添加测试套件。
例如,我有一个如下所述的 TestClassA,其中包含测试用例“test1”
class TestClassA
{
@Test
public void test1()
{
createTestClassDynamically(); // this creates a test class having
// setUp(), tearDown() methods and one test case .
}
}
测试用例 test1 有一个方法 createTestClassDynamically(),它动态地创建一个新的测试类(比如说 TestClassB),它有 setUp()、tearDown() 方法和一个测试用例(比如说 test2())。
我想运行 test1,然后当动态生成 TestClassB 时,我还希望执行测试用例“test2”。
我知道这很复杂,而且不是最好的做法,但在我的框架中,我需要这样做以动态生成大量测试类,而不是将它们物理地放在包中。 任何人都可以提供任何帮助/建议吗?
【问题讨论】:
-
为什么需要动态生成java?
-
我需要从一个类模板生成 100 个类,然后将这些类添加到当前正在运行的套件中,以便执行其中的测试用例。在 junit 3.8 的早期版本中,我们曾经使用 suite.addTestSuite(dynamicClassHere); 将测试添加到全局套件变量中。但是在 junit 4.10 中,当我尝试这种方式时,我得到了 ConcurrentModificationException。