3

我正在寻找自定义实现集合的验证测试,并偶然发现:http ://www.gamlor.info/wordpress/2012/09/google-guava-collection-test-suite/

我以前没有用过junit(所以我是junit的菜鸟)。我将 junit4 添加到了我的测试项目中,然后...... 被困在如何实际运行由 Google Guava Collection Test Suite 创建的测试套件上。我从我的测试类运行带注释的测试就好了,但不是来自番石榴的测试套件。

junit 文档说,套件是通过使用 Suite 注释对套件类进行注释来创建的,列出了它们应该包含的案例,但显然我不能以这种方式列出动态生成的类。我很乐意创建一个简单的测试并将整个套件作为单个测试运行,只是......我如何让 junit 运行套件实例?

4

1 回答 1

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返回的 byTestMaker.foo()以及可能直接在TestRunner.

有关相关讨论(例如,如何引用测试类而不是传递测试对象),请查看:如何在 JUnit 4 中动态创建测试套件?

于 2013-09-07T23:10:19.323 回答