首页 > 解决方案 > 如何在 Maven 中运行单个集成测试?

问题描述

我正在尝试运行单个集成测试。我有很多 *IT 课程,我只想运行一个测试。我试试这个:

mvn -Dit.test=XControllerIT verify

我做错了吗?还有另一种选择吗?正在使用 Maven。

标签: javamavenmockitointegration-testing

解决方案


根据您的项目设置,有两个主要选项:

  • 集成测试使用专用的故障安全插件运行
  • 集成测试使用常规的肯定插件运行

如果你有一个故障保护插件(实际上你应该这样做,这是一种推荐的方法),那么使用以下代码段:

mvn -Dit.test=MySampleIntegrationTest failsafe:integration-test

如果您确定无误,请运行:

mvn -Dtest=MySampleUnitTest surefire:test

在这两种情况下,都有一个直接的插件目标执行,绕过你的初始示例中的生命周期(使用mvn verify

在 Maven 中,可以运行生命周期,请参阅默认生命周期文档以获取更多信息

基本上,生命周期由绑定到每个阶段的插件的阶段组成,因此当您运行mvn verify时,verify之前的所有阶段也将运行。

结果,代码将被编译(编译阶段会自动附加一个 maven 编译插件来完成这项工作),测试将运行(surefire 插件),等等。

如果您没有已编译的源代码和测试代码,则不能使用所提供的方法,因为您必须先编译代码。

但是,如果您已经编译了所有内容,则只运行一个测试而不重新编译代码是有意义的,在这种情况下,您可以根据插件使用建议的解决方案。

特别是对于本地调试或 CI 在某些情况下多步骤构建设置(可以在相当复杂的项目中看到)有意义


推荐阅读