在Junit中,测试套件允许我们将来自多个类的所有测试用例聚合到一个位置并一起运行。
要运行套件测试,需要使用下面提到的注释对类进行注释:
- @ Runwith(Suite.class)
- @ SuiteClasses(test1.class,test2.class……) 或@Suite.SuiteClasses({test1.class,test2.class……})
有了上面的注释,套件中的所有测试类都将开始逐个执行。
创建测试套件和测试运行器的步骤
步骤1) 创建一个简单的测试类(例如MyFirstClassTest),并添加一个带有@Test注释的方法。

步骤2) 创建另一个要添加的测试类(例如MysecondClassTest),并创建一个用@Test注释的方法。

步骤3) 要创建测试套件,需要首先使用@RunWith(Suite.class)和@ SuiteClasses(class1.class2…..) 注释该类。

步骤4) 创建一个Test Runner类来运行我们的测试套件,如下所示;

代码说明:
- 代码行8:声明将运行我们的JUnit测试的类测试的Main方法。
- 代码行9:使用JunitCore.runclass执行测试用例,它接受测试类名作为参数(在上面的示例中,使用的是步骤3中所示的TestSuiteExample.class)。
- 代码行11:使用for循环处理结果,打印失败结果。
- 代码行13:打印成功结果。
输出:以下是显示测试成功且没有故障跟踪的输出,如下所示:

JUnit测试套件示例
考虑一个更复杂的例子
JunitTest.java
java是一个简单的类,带有@RunWith和 @Suite注释 。可以将套件中的.class数量作为参数列出,如下所示:
package guru.junit;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@RunWith(Suite.class)
@Suite.SuiteClasses({
SuiteTest1.class,
SuiteTest2.class,
})
public class JunitTest {
// This class remains empty, it is used only as a holder for the above annotations
}
SuiteTest1.java
SuiteTest1.java是一个测试类,它具有如下所示的打印消息的测试方法。将在上面提到的类中使用这个类作为套件。
package guru.junit;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class SuiteTest1 {
public String message = "Saurabh";
JUnitMessage junitMessage = new JUnitMessage(message);
@Test(expected = ArithmeticException.class)
public void testJUnitMessage() {
System.out.println("Junit Message is printing ");
junitMessage.printMessage();
}
@Test
public void testJUnitHiMessage() {
message = "Hi!" + message;
System.out.println("Junit Hi Message is printing ");
assertEquals(message, junitMessage.printHiMessage());
System.out.println("Suite Test 2 is successful " + message);
}
}
SuiteTest2.java
SuiteTest2.java是另一个类似于SuiteTest1.java的测试类,具有如下所示的打印消息的测试方法。将在JunitTest.java中将该类用作套件。
package guru.junit;
import org.junit.Assert;
import org.junit.Test;
public class SuiteTest2 {
@Test
public void createAndSetName() {
String expected = "Y";
String actual = "Y";
Assert.assertEquals(expected, actual);
System.out.println("Suite Test 1 is successful " + actual);
}
}
输出
执行JunitTest.java(它包含一个具有test1.java和test2.java的套件)后,将得到以下输出:


总结
在本教程中,通过一个示例详细了解了测试工具和测试套件的基础知识。
- 测试工具或自动化测试是一个软件或一组软件,它允许用户测试具有多个输入的数据并控制执行
- 测试工具实际上启用了一个测试框架,该框架执行使用测试库执行测试和生成测试报告的所有工作
- 在Junit中,测试套件允许我们将多个类的所有测试用例聚合到一个位置并一起运行。