您可以使用StringBuffer生成HTML報告。
String filePath = "File path where you want to keep your report";
String reportFileName = "myReport.htm";
JUnitCore junit = new JUnitCore();
junit.addListener(new MyJunitListener());
Result result = junit.run(AllEJBJunitTests.class);
StringBuffer myContent = getResultContent(result, size);//Size represents number of AllEJBJunitTests class, suppose if you have 5 EJB classes then size is 5.
writeReportFile(filePath + "/" + reportFileName, myContent);
//此方法將爲您提供HTML內容。
private StringBuffer getResultContent(Result result, int numberOfTestFiles)
{
int numberOfTest = result.getRunCount();
int numberOfTestFail = result.getFailureCount();
int numberOfTestIgnore = result.getIgnoreCount();
int numberOfTestSuccess = numberOfTest - numberOfTestFail - numberOfTestIgnore;
int successPercent = (numberOfTest != 0) ? numberOfTestSuccess * 100/numberOfTest : 0;
double time = result.getRunTime();
StringBuffer myContent = new StringBuffer("<h1>Junitee Test Report</h1><h2>Result</h2><table border=\"1\"><tr><th>Test Files</th><th>Tests</th><th>Success</th>");
if ((numberOfTestFail > 0) || (numberOfTestIgnore > 0)) {
myContent.append("<th>Failure</th><th>Ignore</th>");
}
myContent.append("<th>Test Time (seconds)</th></tr><tr");
if ((numberOfTestFail > 0) || (numberOfTestIgnore > 0)) {
myContent.append(" style=\"color:red\" ");
}
myContent.append("><td>");
myContent.append(numberOfTestFiles);
myContent.append("</td><td>");
myContent.append(numberOfTest);
myContent.append("</td><td>");
myContent.append(successPercent);
myContent.append("%</td><td>");
if ((numberOfTestFail > 0) || (numberOfTestIgnore > 0)) {
myContent.append(numberOfTestFail);
myContent.append("</td><td>");
myContent.append(numberOfTestIgnore);
myContent.append("</td><td>");
}
myContent.append(Double.valueOf(time/1000.0D));
myContent.append("</td></tr></table>");
return myContent;
}
//這將在您提到的特定目錄中生成報告。
private void writeReportFile(String fileName,StringBuffer reportContent){
FileWriter myFileWriter = null;
try {
myFileWriter = new FileWriter(fileName);
myFileWriter.write(reportContent.toString());
}
catch (IOException e) {
}
finally {
if (myFileWriter!=null) {
try {
myFileWriter.close();
}
catch (IOException e) {
}
}
}
}
乾杯!
我已經用代碼片段更新了我的問題,我在其中添加了自己的runlistener。所有的作品都很棒,但我怎樣才能生成一份報告。使用監聽器將結果打印在控制檯中。 – 2014-10-09 04:51:29
請看看Madhava的回答。 – 2014-10-09 07:35:08