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

问题描述 投票:5回答:1

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

java eclipse ant junit messagebox
1个回答
7
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.