JUnit 5 旨在适应Java 8 编码风格,并比 JUnit 4 更健壮和灵活。
JUnit4 需要Java5 或以上版本。
使用 JUnit5 需要 Java 8 或更高版本。
此外主要的区别是断言Assert和其他注解以及使用上的不同,具体不同点可以参考 JUnit4和JUnit5的主要区别
先按照这篇文章使用idea的maven模板创建一个maven项目:idea快速创建maven项目
org.junit.jupiter junit-jupiter 5.9.2 test org.assertj assertj-core 3.24.2 test
上面使用的junit-jupiter依赖是Junit 提供的一个 集合器(aggregator):它 集成了其他需要的 Junit 依赖,包括:
junit-jupiter-api
junit-jupiter-params
junit-jupiter-engine
这样你就只需写集合器那一个依赖就可以了。
引入 maven-surefire-plugin 插件以支持 Maven 执行应用程序的单元测试并生成txt或xml格式的报告。
(默认情况下,报告生成在{项目目录}/target/surefire-reports/TEST-*.xml)。
org.apache.maven.plugins maven-surefire-plugin 3.0.0
因为用的idea的maven模板创建的maven项目,其最终生成的pom.xml中 pluginManagement里的插件版本可能有点旧,你可以自己指定插件版本,也可以把用不到的插件删除。
最终你的pom.xml看起来像下面这样:
4.0.0 org.example mavenTest 1.0-SNAPSHOT mavenTest UTF-8 1.8 1.8 org.junit.jupiter junit-jupiter 5.9.2 test org.assertj assertj-core 3.24.2 test org.apache.maven.plugins maven-clean-plugin 3.2.0 org.apache.maven.plugins maven-compiler-plugin 3.11.0 1.8 1.8 UTF-8 org.apache.maven.plugins maven-surefire-plugin 3.0.0 org.apache.maven.plugins maven-jar-plugin 3.3.0 org.apache.maven.plugins maven-install-plugin 3.1.0
生命周期、生命周期阶段、插件和插件目标是 Maven 的核心。
mvn,所有前面的阶段都会依次执行。IDEA 主界面右侧 Maven页签的 Lifecycle 和 Plugins 里有同样的命令,比如 install,既在 Plugins 中存在,也在 Lifecycle中存在,它们有什么区别吗?
简单来说Lifecycle 下的是执行整个生命周期,而Plugins 下的是只执行它具体的阶段。
举个例子:
你点击Lifecycle 下的 install :
它会帮你执行如下过程 validate --> compile --> test --> package --> integration-test --> verify --> install ,也就是说它会帮你执行验证、编译、单元测试、打包、整合测试、最后再把生成的jar包发布到本地仓库,换句话说它会帮你执行 install 之前的所有操作,最后执行 install
你点击 Plugins 下的 install :
它只会帮你把生成的jar包发布到本地仓库,也就是说它只会帮你执行 install ,其前面的操作它不会帮你执行。
感兴趣的话可以看下这篇文章:IDEA 中 maven 的 Lifecycle 和Plugins 的区别