如何在 Junit 4 中自定义我的测试套件测试



在下面的代码中,ExampleTest类包含 5 个测试。 但是,我只想使用 JUNIT 从 ExampleTestSuite 类中运行其中的两个。

public class ExampleTest extends TestCase {
    private Example example;
    public ExampleTest(String name) {
        super(name);
    }
    protected void setUp() throws Exception {
        super.setUp();
        example= new Example();
    }
    protected void tearDown() throws Exception {
        super.tearDown();
        example= null;
    }
    public void test1() {
    }
    public void test2() {
    }
    public void test3() {
    }
    public void test4() {
    }
    public void test5() {
    }
}

这是我下面的代码,是在 JUnit 3 中完成的,但是如何在 JUnit 版本 4 中做到这一点?

public class ExampleTestSuite {
    public static Test suite() {
        TestSuite suite = new TestSuite(ExampleTestSuite.class.getName());
        suite.addTest(new ExampleTest("test1"));
        suite.addTest(new ExampleTest("test3"));
        return (Test) suite;
    }
}

您可以使用 JUnit 4.8 中引入的 Categories 运行器,如下所示:

/**
 * Marker class to be used with the @Category annotation of JUnit.
 */
public class SmokeTests {}

/**
 * Your original test class converted to JUnit 4.
 */
public class ExampleTest {
    private Example example;
    @Before
    public void setUp() throws Exception {
        example = new Example();
    }
    @After
    public void tearDown() throws Exception {
        example = null;
    }
    @Test
    @Category(SmokeTests.class)
    public void test1() {}
    @Test
    public void test2() {}
    @Test
    @Category(SmokeTests.class)
    public void test3() {}
    @Test
    public void test4() {}
    @Test
    public void test5() {}
}

/**
 * Your original test suite class converted to JUnit 4.
 */
@RunWith(Categories.class)
@SuiteClasses(ExampleTest.class)
@IncludeCategory(SmokeTests.class)
public class ExampleTestSuite {}

最新更新