我一直在寻找自定义实施收藏品的验证测试,并偶然发现了这一点:http://www.gamlor.info/wordpress/2012/09/google-guava-collection-test-suite/
我之前没有使用过junit(所以我是junit的总菜鸟)。我将junit4添加到了我的测试项目中......并且坚持如何实际运行由Google Guava Collection Test Suite创建的测试套件。我从我的测试类中运行带注释的测试就好了,但不是来自番石榴的测试套件。
junit文档说套件是通过使用套件注释来注释套件类来创建的,列出了它们应该包含的案例,但显然我无法以这种方式列出动态生成的类。我很乐意创建一个简单的测试并将整个套件作为单个测试运行,但是...如何让junit运行套件实例?
答案 0 :(得分:2)
如果你有一个返回Test
对象的工厂方法(让我们称之为TestMaker.foo()
,那么你可以写下类似的东西来取Test
并将它添加到你自己的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
测试时,它还将运行Test
返回的TestMaker.foo()
以及可能直接在TestRunner
中定义的任何其他测试。
对于相关讨论(例如,如何引用Test Class而不是传递Test对象),请查看:How do I Dynamically create a Test Suite in JUnit 4?