有没有办法只告诉Eclipse
跳过各种junit
测试(但仍会运行其余的测试)?我熟悉@Ignore
注释,但这不是我想要的,因为这将导致测试始终被跳过。
我希望在eclipse(Run As -> Junit Test
)运行时跳过测试,但在任何其他环境中运行,很可能在maven构建期间运行。
有什么想法吗?
答案 0 :(得分:2)
到目前为止,以下解决方案运作良好。它不是一个完整的解决方案,因为它导致测试仅在从命令行调用maven时由maven 运行。但就目前而言,它确实有效。
当调用maven时,maven命令行参数将放置在环境映射(System.getenv()
)中。当测试在eclipse中通过jUnit运行时,System.getenv()
中没有maven命令行参数的条目。所以,我使用jUnits Assume
类检查这个属性对于我希望eclipse跳过的测试不为null。
代码:
Assume.assumeNotNull(System.getenv("MAVEN_CMD_LINE_ARGS"));
仅供参考,这个解决方案的一个缺点是eclipse将测试标记为传递而不是跳过。