java - 奇怪的行为 Maven 测试
问题描述
我坚信我对 Maven 及其行为非常熟悉,但我不知道这个。我有一个父项目,我在其中定义了属性:
<maven.test.skip>true</maven.test.skip>
我知道这意味着不构建测试罐。
然后我在父项目中创建了三个属性,如下所示
<skipChild1Test>true</skipChild1Test>
<skipChild2Test>true</skipChild2Test>
<skipChild3Test>true</skipChild3Test>
每个子项目都有一个 maven-surefire-plugin 部分,如下所示
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M3</version>
<configuration>
<skipTests>${skipChildNtest}</skipTests>
</configuration>
</plugin>
基本上我想在父 POM 中静态声明哪些子项目应该运行测试,哪些不运行。
然而,这些属性似乎根本没有任何效果,所有这些都是由原始属性驱动的
<maven.test.skip>true</maven.test.skip>
如果为假,则对孩子进行测试,如果为真,则不会。
mvn test
我总是在父项目上发出命令
我是否错误地配置了孩子?
更新
查看 maven-surefire-plugin 测试目标详细信息,我阅读了有关跳过参数的以下内容:
"将此设置为 "true" 以完全绕过单元测试。不推荐使用它,特别是如果您使用 "maven.test.skip" 属性启用它,因为 maven.test.skip 禁用运行测试和编译测试. 考虑改用 skipTests 参数。 "
所以我在 stackoverflow 和许多其他地方读到的内容是不正确的。maven.test.skip 驱动打包和运行测试
解决方案
您可以使用覆盖子项目中的属性<maven.test.skip>${skipChildNtest}</maven.test.skip>
因此<maven.test.skip>
,您的父项目中的属性不会干扰您的子项目。
也许您也可以摆脱子项目中的插件声明,但我不确定。
推荐阅读
- python - 如何在某些行号之后覆盖/附加行?
- angular - 以反应形式设置 imge url 在 angular2+ 中给出错误
- c - 指向从“int *”分配给“int”的整数转换的不兼容指针;取消引用 * ,这个错误是什么意思?
- php - PHPMailer如何在PHP中发送后将电子邮件保存在Outlook上的已发送邮件文件夹中
- c++ - C++ 继承和 Pointer-To-Member-Functions 与线程相结合
- python - 如何使用 BeautifulSoup 在 Python 中仅提取序列中的第 n 个 HTML 标题标签?
- python - 使用 python 合并多个 csv 文件 - 生成的 csv 将某些数据推送到合并的 csv 中的右侧
- node.js - 如何从 MongoError 中恢复 nodejs 服务:服务器实例池被破坏
- python - 如何使用 sympy 找到 x -y 的差异
- jenkins - 在詹金斯中设置一个全局变量