我设置了Jenkins服务器来编译和测试我实习的公司的代码。
它现在制作了一个非常棒的HTML报告,但它缺少一条看起来会完整的信息。这将是我在Test类中执行的System.out.println()
的输出。
以下是从我的build.xml
文件中生成报告的目标:
<target name="test-report-systemtest" depends="compile-omittedmanage-systemtest" description="Generate Test Results as HTML">
<delete dir="${deploy}\html" />
<delete dir="${deploy}\xml" />
<mkdir dir="${deploy}\html" />
<mkdir dir="${deploy}\xml" />
<mkdir dir="${omittedmanage-systemtestbin}" />
<taskdef name="junitreport" classname="org.apache.tools.ant.taskdefs.optional.junit.XMLResultAggregator" />
<coverage>
<junit printsummary="on" haltonfailure="off" haltonerror="off" fork="yes">
<batchtest fork="yes" todir="${deploy}" filtertrace="on">
<fileset dir="${omittedmanage-unittestbin}" includes="**/*Test*.class" />
</batchtest>
<formatter type="plain" usefile="false" />
<formatter type="xml" usefile="true" />
<classpath>
<path refid="omittedManage.classpath" />
</classpath>
</junit>
</coverage>
<echo message="running JUnit Report" />
<junitreport todir="${deploy}\xml">
<fileset dir="${deploy}\xml">
<include name="Test-*.xml" />
</fileset>
<report format="frames" todir="${deploy}\html" />
</junitreport>
</target>
我得到的是:
这真的很好,但是写一些东西真是太好了,比如&#34;输出&#34;在哪里说&#34;输入&#34;。然后我可以用我的Java中的某种消息来填充它。这是测试本身(它的参数化,所以它拉出一个&#34; True / False&#34;以及来自另一个方法的String放在这个测试方法中并断言是真还是假:
@Test
public void testValidationOfFICheckCipher()
{
try {
System.out.println("Checking validity of EAN Checksum: " + eanString);
boolean expect = new Boolean(expected);
boolean value = new Boolean(CheckSums.validateEAN13(eanString));
assertEquals(expect, value);
} catch(NumberFormatException e) {
System.out.println(e.getMessage());
assertTrue((eanString.length() < 13) || (eanString.length() > 13));
}
}
我真的想要这一行:"Checking validity of EAN Checksum: " + eanString
显示在我的HTML报告中。但我无法弄清楚如何实现这一点......任何知道的人?