如何跳过所有集成测试 (-DskipITs) 和一个单元测试 mvn 命令行

Dan*_*iel 5 java command-line integration-testing unit-testing maven

我对 Maven 比较陌生。我对这个话题做了很多研究和挖掘,但我似乎找不到答案,所以我想我会在这里问。

目标:我想mvn clean install test在跳过集成测试以及一个特定的单元测试类的同时运行。

我尝试了以下方法:

mvn clean install -DskipITs -Dtest=!MyTestClass test

mvn clean install -DskipITs&&test=!MyTestClass test

mvn clean install -DskipITs&test=!MyTestClass test

但是,上述命令似乎都不起作用。以上三个命令中的第一个命令对我来说最有意义,但似乎在使用该命令时正在运行集成测试。这就是我对 Maven 的知识和理解存在差距的地方;我不确定这是否是预期的行为,或者这是否是在命令行上传递多个属性的合适方法?

当我运行这个命令时:mvn clean install -DskipITs test,集成测试被成功跳过。

我熟悉 Maven 构建生命周期,但我可能误解了某些内容或遗漏了细节。

hov*_*yan 6

与 maven 的集成测试通常使用 maven-failsafe-plugin 运行

要告诉此插件跳过集成测试(确保您的集成测试类名称遵循约定 *IT.java,否则您需要将它们包含在 中<inclusions>),您可以在插件的配置中或从命令行(官方文档):

mvn test -DskipITs
Run Code Online (Sandbox Code Playgroud)

可以通过以下方式跳过单个测试:

mvn test -Dtest=!MyTestClass
Run Code Online (Sandbox Code Playgroud)

所以这应该有效:

mvn clean install -DskipITs -Dtest=!MyTestClass
Run Code Online (Sandbox Code Playgroud)