我正在尝试运行单一集成测试。我有很多* IT课程,我只想运行一个测试。我尝试这个:
mvn -Dit.test=XControllerIT verify
我做错了吗?还有其他选择吗?正在使用Maven。
答案 0 :(得分:1)
根据您的项目设置,有两个主要选项:
如果您有一个故障安全插件(实际上应该采用推荐的方法),请使用以下代码段:
mvn -Dit.test=MySampleIntegrationTest failsafe:integration-test
如果您使用的是surefire,请运行:
mvn -Dtest=MySampleUnitTest surefire:test
在这两种情况下,都有直接的插件目标执行,就像您的初始示例(使用mvn verify
)那样绕过了生命周期
在maven中可以运行生命周期,有关更多信息,请参见Default Lifecycle Documentation
基本上,生命周期由各个阶段组成,每个阶段都绑定了插件 因此,当您运行 mvn验证时,验证之前的所有阶段也会运行。
因此,代码将被编译(带有自动附加到其上的maven编译插件的编译阶段将完成此工作),测试将运行(surefire插件),依此类推。
如果您没有已编译的源代码和测试代码,则无法使用所介绍的方法,因为必须先编译代码。
但是,如果您已经编译了所有内容,那么只运行一次测试而无需重新编译代码是有意义的,在这种情况下,取决于插件,您可以使用建议的解决方案。
特别是它对于本地调试或CI(在某些情况下为多步构建设置)(在相当复杂的项目中可见)很有意义