【发布时间】:2011-09-25 10:07:16
【问题描述】:
Maven 3.x.x 抱怨我用于另一个真实测试的模拟“TestPacket”类:
java.lang.Exception: No runnable methods
如何避免 Maven 抱怨这个问题? 我现在这样做了(在 TestPacket 中):
@Test
public void workaround() {
}
但应该有另一种干净的方式......
感谢您的宝贵时间!
安德鲁
【问题讨论】:
Maven 3.x.x 抱怨我用于另一个真实测试的模拟“TestPacket”类:
java.lang.Exception: No runnable methods
如何避免 Maven 抱怨这个问题? 我现在这样做了(在 TestPacket 中):
@Test
public void workaround() {
}
但应该有另一种干净的方式......
感谢您的宝贵时间!
安德鲁
【问题讨论】:
这更像是一个 JUnit 问题而不是 maven 问题。如果您不希望您的 TestPacket 类被 JUnit 视为 JUnit 测试类,请使用 JUnit 的 @Ignore 注释对其(在类级别)进行注释
【讨论】:
@Ignore-ed 类只是暂时禁用,因为@Ignore javadoc 说:“有时您想暂时禁用一个测试或一组测试。”我经常在禁用测试的代码中搜索@Ignore 来修复它们。很多错误的结果可能会令人不安。此外,这种做法会永久增加 Surefire/Hudson 报告中跳过测试的数量。
排除pom中surefire插件配置中的default "**/Test*.java" inclusion rule:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludes>
<exclude>**/Test*.java</exclude>
</excludes>
</configuration>
</plugin>
更好的解决方案是仅排除您的 TestPacket 类。
【讨论】: