赞
踩
首先在 Maven 中有固定好的目录结果,在 src 目录下分为 main 和 test,测试一定要写在 test 中
Junit 详细介绍见:JUnit4 / JUnit 5 全面详解【单元测试、Maven】
先在 maven 工程下面的 test/java 中创建一个 test 类,注意这个测试类的类名一定以 Test 开头或者 Test 结尾
因此我们创建一个 MavenTest 测试类
测试需要使用到 junit 这个依赖 jar 包
同理访问 jar 包查询网站: https://mvnrepository.com/;搜索 junit
,并选择最多的人的一个版本,添加到 pom.xml
中
然后通过 junit 中的 Assertions 的 Assertions.assertEquals 方法来断言,是否跟我们预期的结果一致,代码如下:
package com.lqh.maven.test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class MavenTest {
@Test
public void testAssert(){
int a = 10;
int b = 20;
Assertions.assertEquals(30, a + b); // 断言表达式的结果是否与预期的一致,如果结果不是 30 会报错
}
}
运行发现,我们预期的结果与实际结果一致,因此顺利运行。
如果将预期结果更改为 20,则可以看到,发生了报错,告诉我们,预期结果 20,实际结果为 30
首先通过 cmd 打开命令行,并地址进去到项目文件
如果存在和 src 同级的 target 目录,里面有一些其他文件,则可能之前做过一些测试
先通过 mvn clean 清除之前的所有测试
清除完后,target 目录被删除。
首先测试程序也是一个测试类,要执行类就需要先对其进行编译,执行 mvn compile
编译完成后,进去到 target/classes
文件里面,发现并没有测试类的字节码文件(预期应该是 MavenTest.class),这是为什么呢?因为 mvn compile 只能编译核心程序!
如果想要编译测试程序,需要执行 mvn test-compile
这个时候,打开 target 目录,发现 target 目录下多了一个目录 test-classes,进入可以看到测试类的字节码文件
并且可以在 surefire-reports
文件内看到测试报告
实际上可以直接通过 mvn test 命令,直接编译执行测试类,如下:
接着执行 mvn test 命令,开始测试
这里可以看到,执行了测试类,并且显示,没有错误
如果更改我们期望值为 20(我们知道会报错,主要看程序会反馈给我们什么)
再一次执行 mvn test,发现报错如下:
如下,将 MavenTest 中的 testAssert 方法名改为 aaaa,将会发生什么
更改后,执行 mvn test,可以发现,测试类找到了,但是测试方法 Tests run 显示为:0
因此,在 Maven 项目中,测试类的测试方法,方法名也是有具体要求的,一定要按照要求写
定义规则如下:
test(Test)
+被测方法比如将上述的 MavenTest 改为 MavenDemo
再一次执行 mvn test,发现测试类根本找不到
因此,测试类的类名,一定要以被 Test 开头或以 Test 结尾,建议以 Test 结尾
注: 可通过 mvn clean test,依次先执行 clean 再执行 test
测试报告
尚硅谷Maven教程(maven入门+高深,全网无出其右!)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。