创建 JUnit 测试套件示例:@RunWith @SuiteClasses

在 Junit 中,测试套件允许我们将来自多个类的所有测试用例聚合到一个地方并一起运行。

要运行套件测试,您需要使用下面提到的注解来注解一个类

  1. @Runwith(Suite.class)
  2. @SuiteClasses(test1.class,test2.class……) 或@Suite.SuiteClasses ({test1.class, test2.class……})

使用上述注解,套件中的所有测试类将一个接一个地开始执行。

创建测试套件和测试运行器的步骤

步骤 1) 创建一个简单的测试类(例如 MyFirstClassTest)并添加一个带有 @test 注解的方法。

Steps to Create Test Suite and Test Runner

步骤 2) 创建另一个要添加的测试类(例如 MySecondClassTest)并创建一个带有 @test 注解的方法。

Steps to Create Test Suite and Test Runner

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

Steps to Create Test Suite and Test Runner

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

Steps to Create Test Suite and Test Runner

代码解释

  • 代码行 8: 声明将运行我们的 JUnit 测试的类测试的主方法。
  • 代码行 9: 使用 JunitCore.runclasses 执行测试用例,该方法将测试类名作为参数(在上面的示例中,您使用的是步骤 3 中所示的 TestSuiteExample.class)。
  • 代码行 11: 使用 for 循环处理结果并打印出失败的结果。
  • 代码行 13: 打印出成功的结果。

输出: 以下是输出,显示成功的测试,没有失败跟踪,如下所示

Steps to Create Test Suite and Test Runner

JUnit 测试套件示例

考虑一个更复杂的例子

JunitTest.java

JunitTest.java 是一个用 @RunWith@Suite 注解的简单类。您可以在套件中列出多个 .class 作为参数,如下所示

package guru99.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 guru99.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 guru99.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);							
    }		

}		

输出

执行包含 test1.javatest2.java 的套件的 JunitTest.java 后,您将获得以下输出

SuiteTest2.Java Output

SuiteTest2.Java Output

摘要

在本教程中,您已经通过示例详细学习了测试工具和测试套件的基础知识。

  • 测试工具或自动化测试是一种软件或软件集合,它允许用户使用多个输入测试数据并控制执行
  • 测试工具实际上启用了一个测试框架,该框架完成使用测试库执行测试并生成测试报告的所有工作
  • 在 Junit 中,测试套件允许我们将许多类的所有测试用例聚合到一个地方并一起运行。