maven - 通过传递命令行开关启用某些 Maven 测试

标签 maven surefire

我有一个单模块项目,其中有一些需要外部硬件设备的单元测试。我不希望执行这些测试,除非我表明该设备可用。

我觉得使用 Maven 属性和 SureFire 排除/包含配置可以解决这个问题,但我不太明白如何做到这一点。一个similar question展示了如何基于 Maven 属性禁用/启用项目中的所有测试,但并不能完全回答我的问题。

总之,我希望确定一种模式(例如 **/*ResourceTest.java)来描述我不想运行的测试,除非我传递 Maven 属性来启用它们.

例如

mvn clean install(运行标准测试,但跳过设备相关测试)

mvn -Drun.device.tests=true clean install(运行所有测试)

提前致谢。

(进行编辑以删除“资源”一词的误导性用法 > 替换为“硬件设备”)。

最佳答案

您也可以只使用 JUnit Assume决定(在测试内部)是否应该执行或跳过测试的方法。

恕我直言,最好的选择是将设备相关测试“声明”为“集成测试”,并让它们由 Maven Failsafe Plugin 执行。 。我认为这将是“内置”maven 解决方案,没有任何配置文件“魔法”。

关于maven - 通过传递命令行开关启用某些 Maven 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11628197/

相关文章:

java - 避免在目标/生成源的循环中构建项目

安卓人工集成

rest - JerseyTest 缺少依赖项 com.google.common.collect.Sets

maven - Intellij 没有获取 maven surefire 配置

Maven 插件 - 将参数传递到生命周期阶段

java - 如何使用 slf4j 和不同的日志实用程序设置 4 个 Maven 项目?

maven-2 - Junit 运行时不选择文件 src/test/resources。对于某些依赖 jar 所需的文件

unit-testing - 在运行 “maven clean install”和Sonar时,如何只运行一次单元测试?

spring - 使用 Maven/JUnit/Spring 在第一次失败时停止测试

java - 使用 netbeans 调试 Maven 测试?