簡體   English   中英

如何使用runlistener創建JUNIT報表?

[英]How to create JUNIT Reports using runlistener?

我一直在使用JUNIT進行測試。 我能夠運行我的測試用例,但問題是如何使用runlistener( 不使用ANT或MAVEN )以編程方式創建JUNIT報告。 我有點受阻,不勝感激。

偵聽器實現:

JUnitCore junit = new JUnitCore();

junit.addListener(new MyJunitListener());

junit.run(AllEJBJunitTests.class);

如何進行報告制作?

您可以使用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) {

                }
            }
        }
    }

干杯!

您可以實現自己的運行偵聽器,該偵聽器可以編寫報告。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM