'mvn verify' vs "MVN 测试"有什么区别?



我对mvn verify阶段有点困惑。我创建了一个Spring Boot项目(一个简单的项目,没有添加任何显式配置(。我已经创建了一些JUnit单元测试,它们使用mvn verifymvn test命令运行。

mvn verifymvn test命令输出中没有观察到任何差异。

mvn verifymvn test有什么不同?

还有一些关于Stack Overflow的帖子提到mvn verify运行集成测试。如果是这样的话,那么我就没有什么问题了。

  • Maven如何将特定测试识别为单元测试或集成测试
  • 如果mvn verify应该只运行集成测试,那么为什么要用它执行单元测试呢

首先,当您运行Maven目标时,它将运行以前的任何目标。基本阶段的顺序是:

  • 验证
  • 编译
  • 测试
  • 包装
  • 验证
  • 安装
  • 部署

如果运行Test,Maven将执行验证、编译和测试。基于此,第一点是验证包括测试。

基于官方文件:

  • TEST-使用合适的单元测试框架测试编译的源代码。这些测试不应要求对代码进行打包或部署

  • 验证-对集成测试的结果进行任何检查,以确保质量标准符合

要运行单元测试,建议使用Surefire插件。以及用于集成测试的故障保护。

verify命令按顺序执行每个默认生命周期阶段(验证、编译、打包等(,然后再执行verify。在大多数情况下,效果与相同。但是,如果有集成测试,也会执行这些测试。在验证阶段,可以进行一些额外的检查,例如,如果您的代码是根据预定义的检查样式规则编写的。

结论:如果您想运行集成测试并进行检查,请使用verify。如果您只想运行单元测试,请使用测试

我的个人建议:如果有疑问,请使用验证

Maven如何将特定测试识别为单元测试或集成测试?

集成测试的名称总是类似于IT.java或IT.java或*ITCase.java

最新更新