Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何运行由工厂方法创建的(JUnit)测试套件?_Java_Junit - Fatal编程技术网

Java 如何运行由工厂方法创建的(JUnit)测试套件?

Java 如何运行由工厂方法创建的(JUnit)测试套件?,java,junit,Java,Junit,我正在为自定义实现的集合寻找验证测试,偶然发现: 我以前从未使用过junit(所以我完全不喜欢junit)。我将junit4添加到我的测试项目中,并且。。。被困在如何实际运行由Google Guava Collection测试套件创建的测试套件上。我从我的测试类运行带注释的测试,但不是guava的测试套件 junit文档说,套件是通过用套件注释对套件类进行注释来创建的,列出了它们应该包含的情况,但显然我不能以这种方式列出动态生成的类。我很乐意创建一个简单的测试,并将整个套件作为一个测试运行,仅。

我正在为自定义实现的集合寻找验证测试,偶然发现:

我以前从未使用过junit(所以我完全不喜欢junit)。我将junit4添加到我的测试项目中,并且。。。被困在如何实际运行由Google Guava Collection测试套件创建的测试套件上。我从我的测试类运行带注释的测试,但不是guava的测试套件


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您应该将其作为答案发布(可能带有摘要/引用).当然。我现在就写点东西。