【发布时间】:2012-01-21 14:41:47
【问题描述】:
我正在尝试在我们的构建过程中通过无头 Eclipse 执行 JUnit 测试。单元测试是从 Ant 脚本调用的,使用以下命令:
eclipsec.exe -noSplash -application org.eclipse.ant.core.antRunner -data "C:\SomeDirectory" -buildfile "C:\Path\To\tests.xml"
这很好用,除非 Ant 脚本因任何原因需要失败(通过显式任务,因为单元测试失败,或者因为单元测试在上游抛出异常)。在任何一种情况下,eclipsec 都会引发一个对话框来报告“发生错误”。这伴随着一个例外。堆栈跟踪的顶部(如果相关)是:
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.ant.core.AntRunner.run(AntRunner.java:513)
at org.eclipse.ant.core.AntRunner.start(AntRunner.java:600)
我并不真正关心 Ant 脚本或 Eclipse 失败的原因——这就是日志记录的原因——但随之弹出的对话框是不可接受的,因为它在等待时会挂起我们的持续集成系统让隐形用户来点击它。
有什么方法可以抑制这个对话框?有没有什么方法可以绕过这个不需要真实用户响应的对话框?
附加信息:
Eclipse 版本:Indigo(昨天最新)。它内部的 Ant 和 JUnit。
Java 版本:JDK 6.0_30 32 位
操作系统:Windows(7 和 Server 2003)
【问题讨论】:
-
这显然也发生在我的 CodeWarrior 身上。
标签: java eclipse ant junit messagebox