文
章
目
录
章
目
录
在任何应用程序中,当我们希望每次引入新特性时都能够只运行某些特定测试,就可以使用JUnit框架中的JUnitCore类来实现。
JUnitCore是JUnit包中内置的一个类,它基于门面设计模式。JUnitCore类用于只运行特定的测试类。
1.JUnitCore示例
假设应用程序发布中有两个新特性,这两个特性通过两个接口进行暴露。假设这两个接口的名称分别是FeatureOne和FeatureTwo。
1.1 需要测试的特性
针对这两个特性的JUnit测试如下所示:
public class TestFeatureOne {
@Test
public void testFirstFeature()
{
Assert.assertTrue(true);
}
}
public class TestFeatureTwo {
@Test
public void testSecondFeature()
{
Assert.assertTrue(true);
}
}
1.2 使用JUnitCore运行测试
要仅针对上述特性编写套件并运行测试,我们可以像下面这样编写:
@SuppressWarnings("rawtypes")
public class WithJUnitCore
{
public static void main(String[] args)
{
List testCases = new ArrayList();
//Add test cases
testCases.add(TestFeatureOne.class);
testCases.add(TestFeatureTwo.class);
for (Class testCase : testCases)
{
runTestCase(testCase);
}
}
private static void runTestCase(Class testCase)
{
Result result = JUnitCore.runClasses(testCase);
for (Failure failure : result.getFailures())
{
System.out.println(failure.toString());
}
}
}
2 从命令行使用JUnitCore运行测试
要从命令行手动运行测试类,可以在控制台运行以下命令。所有测试类的名称之间用空格分隔。
$ java org.junit.runner.JUnitCore TestFeatureOne TestFeatureTwo
3 使用JUnitCore运行所有测试
创建JUnit套件并执行应用程序中的所有测试用例是一个很好的做法。这虽然需要一些工作,但仍然是JUnit中执行所有测试的最佳方式。
@RunWith(Suite.class)
@SuiteClasses({ TestFeatureOne.class, TestFeatureTwo.class })
public class TestFeatureSuite {
//
}