在下面的代码中,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 {}