我有一个模块项目,它有一些需要外部硬件设备的单元测试。除非我指出设备可用,否则我不希望这些测试执行。通过传递命令行开关来启用某些Maven测试
我觉得这是可以解决的使用Maven属性和SureFire排除/包含配置,但我不知道该怎么做。 A similar question显示了如何根据Maven属性禁用/启用项目中的所有测试,但并未完全回答我的问题。总之,我想确定一个描述我不想运行的测试的模式(例如**/*ResourceTest.java
),除非我通过一个Maven属性来启用它们。
E.g.
mvn clean install
(运行标准测试,但跳过设备相关的测试)
mvn -Drun.device.tests=true clean install
(运行所有测试)
在此先感谢。
(修改为删除“资源”一词的误导性用法,替换为“硬件设备”)。
我对“资源”一词的使用非常不幸。我将编辑我原来的问题,希望能解释我的意思。我仍然可以使用你的答案来解决我的问题(尽管你的具体例子现在将是多余的 - 对不起)。 – 2012-07-24 11:08:48
是的,配置文件显然是我的问题的答案。我会将您的答案标记为已接受,但我也会发布一个完整的答案,显示它在我的POM中的工作原理。 (仅供参考 - 背景是我为一家生产硬件产品的公司工作,每个与我们合作的项目都需要我们的产品,因此许多单元测试假设存在硬件)。 – 2012-07-24 11:21:41
@DuncanJones好了,现在已经很清楚了,你的理由听起来不错,可以触发这样的测试。谢谢 :)。我在等你,这个主题很有意思! – 2012-07-24 13:07:48