1. 环境准备
在Ubuntu上使用Java测试框架前,需先安装JDK(Java开发工具包)。以OpenJDK 11为例,执行以下命令安装:
sudo apt update
sudo apt install openjdk-11-jdk
安装完成后,通过java -version和javac -version验证安装是否成功(需显示版本信息)。
2. 选择测试框架
Java生态中最主流的测试框架是JUnit 5(推荐,支持注解驱动、参数化测试等特性)和TestNG(支持依赖测试、分组测试等高级功能)。两者均可与Maven/Gradle构建工具集成,简化依赖管理和测试执行。
3. 集成构建工具(以Maven为例)
Maven能自动管理依赖并执行测试生命周期。在项目的pom.xml文件中添加对应依赖:
- JUnit 5依赖(核心API+引擎):
<dependencies> <dependency> <groupId>org.junit.jupitergroupId> <artifactId>junit-jupiter-apiartifactId> <version>5.9.3version> <scope>testscope> dependency> <dependency> <groupId>org.junit.jupitergroupId> <artifactId>junit-jupiter-engineartifactId> <version>5.9.3version> <scope>testscope> dependency> dependencies> - TestNG依赖:
<dependencies> <dependency> <groupId>org.testnggroupId> <artifactId>testngartifactId> <version>7.8.0version> <scope>testscope> dependency> dependencies>
添加依赖后,运行mvn install下载依赖到本地仓库。
4. 编写测试类
按照Maven标准目录结构(src/main/java存放主代码,src/test/java存放测试代码),创建测试类。测试类需遵循以下规范:
- 类名以
Test结尾(如CalculatorTest); - 测试方法用
@Test注解标记; - 使用断言(如
assertEquals)验证结果。
JUnit 5示例(测试Calculator类的add方法):
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class CalculatorTest {
@Test
public void testAdd() {
Calculator calculator = new Calculator();
int result = calculator.add(2, 3);
assertEquals(5, result, "2+3 should equal 5"); // 断言结果,带自定义错误信息
}
}
TestNG示例(包含@BeforeClass前置方法和分组测试):
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class UserServiceTest {
@BeforeClass
public void setUp() {
System.out.println("Initializing test environment..."); // 测试类执行前的初始化操作
}
@Test(groups = {"smoke"}) // 归属smoke测试组
public void testLoginSuccess() {
UserService userService = new UserService();
boolean result = userService.login("admin", "123456");
assert result : "Login should succeed with correct credentials";
}
@Test(groups = {"functional"})
public void testLoginFailure() {
UserService userService = new UserService();
boolean result = userService.login("admin", "wrong");
assert !result : "Login should fail with wrong password";
}
}
5. 运行测试
- Maven命令:在项目根目录下执行
mvn test,Maven会自动编译代码并运行src/test/java下的所有测试类。测试结果会输出到控制台,显示通过/失败的用例数。 - TestNG命令行:若使用TestNG,需先创建
testng.xml配置文件(定义测试套件和类),再执行java -cp "target/classes:target/test-classes:~/.m2/repository/org/testng/testng/7.8.0/testng-7.8.0.jar" org.testng.TestNG testng.xml(替换为实际路径)。
6. 查看测试报告
- Maven默认报告:运行
mvn test后,报告会生成在target/surefire-reports目录下,包含TEST-*.xml(详细结果)和*.txt(文本摘要)文件。 - TestNG报告:运行TestNG后,报告会生成在
target/surefire-reports(默认路径)或test-output目录下,包含index.html(汇总报告,显示用例数、通过率)和emailable-report.html(可发送邮件的格式)。
7. 高级场景扩展
- 参数化测试(JUnit 5):使用
@ParameterizedTest和@ValueSource注解,测试同一方法的不同输入:@ParameterizedTest @ValueSource(ints = {1, 2, 3, 4}) public void testIsEven(int number) { boolean result = Calculator.isEven(number); assertEquals(number % 2 == 0, result); } - 依赖测试(TestNG):使用
@Test(dependsOnMethods = {"initDatabase"})注解,指定测试方法的执行顺序(如login方法依赖initDatabase初始化数据库)。
以上就是关于“Ubuntu Java测试框架如何使用”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm