Java 如何运行由工厂方法创建的(JUnit)测试套件?
我正在为自定义实现的集合寻找验证测试,偶然发现: 我以前从未使用过junit(所以我完全不喜欢junit)。我将junit4添加到我的测试项目中,并且。。。被困在如何实际运行由Google Guava Collection测试套件创建的测试套件上。我从我的测试类运行带注释的测试,但不是guava的测试套件Java 如何运行由工厂方法创建的(JUnit)测试套件?,java,junit,Java,Junit,我正在为自定义实现的集合寻找验证测试,偶然发现: 我以前从未使用过junit(所以我完全不喜欢junit)。我将junit4添加到我的测试项目中,并且。。。被困在如何实际运行由Google Guava Collection测试套件创建的测试套件上。我从我的测试类运行带注释的测试,但不是guava的测试套件 junit文档说,套件是通过用套件注释对套件类进行注释来创建的,列出了它们应该包含的情况,但显然我不能以这种方式列出动态生成的类。我很乐意创建一个简单的测试,并将整个套件作为一个测试运行,仅。
junit文档说,套件是通过用套件注释对套件类进行注释来创建的,列出了它们应该包含的情况,但显然我不能以这种方式列出动态生成的类。我很乐意创建一个简单的测试,并将整个套件作为一个测试运行,仅。。。如何让junit运行套件实例?如果您有一个返回
Test
对象的工厂方法(我们称之为TestMaker.foo()
),那么您可以编写如下内容来进行测试并将其添加到您自己的TestSuite
类中:
import junit.framework.JUnit4TestAdapter;
import junit.framework.TestSuite;
import org.junit.runner.RunWith;
import org.junit.runners.AllTests;
@RunWith(AllTests.class)
public class TestRunner {
public static TestSuite suite() {
TestSuite ts = new TestSuite();
ts.addTest(TestMaker.foo());
return ts;
}
}
现在,当您运行TestRunner
测试时,它还将运行TestMaker.foo()
返回的Test
,以及可能直接在TestRunner
中定义的任何其他测试
有关相关讨论(例如,如何引用测试类而不是通过测试对象),请查看:您看过吗?我认为您应该能够按照这些模式结束对factory方法的调用,以完成您想要的。具体来说,@tuckermi您应该将其作为答案发布(可能带有摘要/引用).当然。我现在就写点东西。