2011-04-25 53 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