如何在Maven中运行单一集成测试?

时间:2018-09-04 05:51:31

标签: java maven mockito integration-testing

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

mvn -Dit.test=XControllerIT verify

我做错了吗?还有其他选择吗?正在使用Maven。

1 个答案:

答案 0 :(得分:1)

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

  • 集成测试使用专用的故障保护插件运行
  • 集成测试使用常规的surefire插件运行

如果您有一个故障安全插件(实际上应该采用推荐的方法),请使用以下代码段:

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

如果您使用的是surefire,请运行:

mvn -Dtest=MySampleUnitTest surefire:test

在这两种情况下,都有直接的插件目标执行,就像您的初始示例(使用mvn verify)那样绕过了生命周期

在maven中可以运行生命周期,有关更多信息,请参见Default Lifecycle Documentation

基本上,生命周期由各个阶段组成,每个阶段都绑定了插件 因此,当您运行 mvn验证时,验证之前的所有阶段也会运行。

因此,代码将被编译(带有自动附加到其上的maven编译插件的编译阶段将完成此工作),测试将运行(surefire插件),依此类推。

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

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

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