在无头模式下运行Eclipse时禁用错误消息对话框?

时间:2011-12-15 23:15:53

标签: java eclipse ant junit messagebox

我正在尝试在构建过程中通过无头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)

1 个答案:

答案 0 :(得分:6)

如果您正在使用ErrorDialog的子类,则可以将一个名为AUTOMATED_MODE的静态设置为true。

结果(参见下面的评论)错误来自包装器程序exclipsec。在这里查看命令行选项:http://help.eclipse.org/indigo/topic/org.eclipse.platform.doc.isv/reference/misc/runtime-options.html在命令行上指定--launcher.suppressErrors将避免此对话框(请注意双破折号)。