2011-12-15 49 views
4

我試圖通過在我們的構建過程中的無頭日食執行JUnit測試。單元測試是從Ant腳本調用,使用此命令:在無頭模式下運行eclipse時禁用錯誤消息對話框?

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版本:Indigo(最新截至昨天)。它內部的Ant和JUnit。 Java版本:JDK 6.0_30 32位 操作系統:Windows(7和Server 2003)

回答

5

如果您正在使用ErrorDialog的子類,有一個靜態叫AUTOMATED_MODE,你可以設置爲true。

結果(請參閱下面的註釋)錯誤來自包裝程序exclipsec。查看命令行選項:http://help.eclipse.org/indigo/topic/org.eclipse.platform.doc.isv/reference/misc/runtime-options.html在命令行中指定--launcher.suppressErrors將避免此對話框(請注意雙破折號)。

+0

這看起來很有希望,但我要麼不知道如何應用它,要麼在這種情況下不起作用。我試着在一個JUnit測試中設置它,我會失敗,但它不會阻止一個eclipse錯誤對話框。錯誤抑制需要發生在Ant層或eclipse層,但我不知道是哪一個,或者怎麼做。 – 2011-12-16 02:50:26

相關問題