2011-04-25 62 views
2

我正在使用GWT 2.2.0並且有一些只在生產模式測試中失敗的測試(即通過gwt.args傳遞-prod)。我似乎無法弄清楚如何爲這些測試生成調試輸出,以便我能夠弄清楚發生了什麼問題。登錄GWT生產模式測試

我試過System.out.println()並嘗試使用simpleRemoteHandler。但是,我從來沒有真正使用過GWT的日誌記錄模擬,所以我可能做錯了什麼,並且使用這個問題搜索並沒有幫助。

更新2011-04-26:

添加以下到我的gwt.xml文件:

<inherits name="com.google.gwt.logging.Logging" /> 
<set-property name="gwt.logging.logLevel" value="ALL" /> 
<set-property name="gwt.logging.enabled" value="TRUE" /> 
<set-property name="gwt.logging.simpleRemoteHandler" value="ENABLED" /> 

,然後試圖爪哇以下位才能登錄:

Logger logger = Logger.getLogger(""); 
logger.log(Level.SEVERE, "log message"); 

但是,日誌消息似乎沒有出現在任何測試輸出中。

這裏是我的JUnit ant配置:

<junit fork="yes" printsummary="yes" errorproperty="gwttest.runerror.prod"> 
    <jvmarg line="-Xmx256m" /> 
    <sysproperty key="gwt.args" value="-prod -standardsMode -logLevel WARN -war ${dir.build.test.gwttest.war} -out ${dir.build.test.gwttest.out}" /> 
    <sysproperty key="java.awt.headless" value="true" /> 
    <classpath> 
     <!-- Classes --> 
     <pathelement location="${junit.jar}" /> 
     <path refid="gwt.classpath" /> 
     <pathelement location="${dir.build.classes}" /> 
     <pathelement location="${dir.build.test.gwttest}" /> 
     <!-- Source --> 
     <pathelement location="${dir.src.main}" /> 
     <pathelement location="${dir.src.test.base}" /> 
     <pathelement location="${dir.src.test.gwttest}" /> 
    </classpath> 
    <batchtest todir="${dir.build.reports.gwttest.prod}" > 
     <fileset dir="${dir.src.test.gwttest}" includes="**/*Test.java" /> 
    </batchtest> 
    <formatter type="plain" /> 
    <formatter type="xml" /> 
</junit> 

回答

0

嘗試使用gwt-log library。它有幾種方式來記錄生產中的消息,包括<div>,Firebug控制檯和遠程記錄器(當調試其他人的問題時必須)。

+0

如果我不能登錄工作,我可能會給gwt-log一個去。通常我只是使用System.out.println()在junit測試期間進行簡單的調試。 – KennethJ 2011-04-26 07:47:12

1

我一直對GWT logging emulation印象深刻。你可能想深入瞭解它並使其工作。 gwt-log庫也可以工作,但是它是一個更多的依賴項。你可以提供的任何細節爲什麼記錄(以任何形式)不起作用將幫助我們幫助你!

+0

GWT給我留下了非常深刻的印象,這就是爲什麼我感到困惑,爲什麼記錄似乎沒有奏效。我可能做錯了什麼。 – KennethJ 2011-04-26 07:46:31

+0

糟糕 - 問題在於,通過JUnit運行會跳過讀取gwt.xml文件,因此從那裏的日誌記錄配置不會被讀取。請參閱此處:http://groups.google.com/group/google-web-toolkit/browse_thread/thread/d3c3505c23f60809/ac1125c30458a5c5。所以,回到常規的java.util.logging配置上,它應該可以工作。 – 2011-04-26 13:06:17

+0

這不就是爲測試運行器添加「-prod」參數的意義所在,以便測試通過HtmlUnit而不是DevMode JRE環境在實際的JS中運行? – KennethJ 2011-04-26 14:12:08