TestNG - JUnit 報告



JUnit是最早被許多Java應用程式用作單元測試框架的單元測試框架之一。預設情況下,JUnit測試會為其測試執行生成簡單的報告XML檔案。然後,可以根據測試需求使用這些XML檔案生成任何自定義報告。我們也可以使用XML檔案生成HTML報告。Ant具有這樣的實用程式任務,它將這些JUnit XML檔案作為輸入並生成HTML報告。

TestNG預設情況下會為任何測試執行生成JUnit XML報告(在test-output資料夾中)。我們可以使用這些XML報告檔案作為輸入來生成JUnit HTML報告。讓我們來看一個例子。

建立測試用例類

建立一個Java類,例如,在/work/testng/src中建立一個名為SampleTest.java的類。

import org.testng.Assert;
import org.testng.annotations.Test;

public class SampleTest {
   @Test
   public void testMethodOne() {
      Assert.assertTrue(true);
   }

   @Test
   public void testMethodTwo() {
      Assert.assertTrue(false);
   }

   @Test(dependsOnMethods = {"testMethodTwo"})
   public void testMethodThree() {
      Assert.assertTrue(true);
   }
}

上述測試類包含三個測試方法,其中testMethodOnetestMethodThree在執行時將透過,而testMethodTwo透過向Assert.assertTrue方法(用於測試中的真值條件)傳遞一個false布林值使其失敗。

建立testng.xml

/work/testng/src中建立testng.xml來執行測試用例。

<?xml version = "1.0" encoding = "UTF-8"?>
<suite name = "Simple Suite">

   <test name = "Simple test">
      <classes>
         <class name = "SampleTest" />
      </classes>
   </test>
</suite>

使用javac編譯SampleTest類。

/work/testng/src$ javac SampleTest.java

現在,執行testng.xml。

/work/testng/src$ java org.testng.TestNG testng.xml

驗證輸出。

===============================================
   Simple Suite
   Total tests run: 3, Failures: 1, Skips: 1
===============================================

現在我們已經從上述執行中獲得了JUnit XML報告,讓我們建立一個簡單的Ant構建配置XML檔案來為測試執行生成HTML報告。

/work/testng/src資料夾下建立一個名為build.xml的新檔案。

<project name = "TestNG_WORKSPACE" default = "junit-report" basedir = ".">
   <!-- Sets the property variables to point to respective directories -->
   <property name = "junit-xml-dir" value="${basedir}/test-output/junitreports"/>
   <property name = "report-dir" value="${basedir}/html-report" />

   <!-- Ant target to generate html report -->
   <target name = "junit-report">
      <!-- Delete and recreate the html report directories -->
      <delete dir = "${report-dir}" failonerror="false"/>
      <mkdir dir = "${report-dir}" />
      <mkdir dir = "${report-dir}/Junit" />
      <!-- Ant task to generate the html report.
      todir - Directory to generate the output reports

      fileset - Directory to look for the junit xml reports.

      report - defines the type of format to be generated.
      Here we are using "noframes" which generates a single html report.
      -->
      <junitreport todir = "${report-dir}/Junit">
         <fileset dir = "${junit-xml-dir}">
            <include name = "**/*.xml" />
         </fileset>
         <report format = "noframes" todir = "${report-dir}/Junit" />
      </junitreport>
   </target>
</project>

上述XML定義了一個簡單的Ant build.xml檔案,它有一個名為junit-report的特定Ant目標,在執行時會生成JUnit報告。該目標在test-output/junitreports目錄下查詢JUnit報告XML檔案。對於Ant配置檔案,配置的預設執行目標是junit-report。

開啟命令提示符視窗,在命令提示符中轉到/work/testng/src目錄,然後執行命令:

/work/testng/src$ ant

執行後,將在配置的目錄/html-report/Junit中生成JUnit HTML報告。在預設的Web瀏覽器中開啟名為junit-noframes.html的檔案。您將看到以下HTML報告:

JUnit Report

在這裡,我們看到了如何使用TestNG生成的JUnit XML報告,並使用Ant生成HTML報告。使用此方法可以生成兩種報告:帶框架無框架

如果報告生成配置了框架,則將為每個類生成多個檔案,並且主報告將透過連結連線到它們。無框架報告包含單個檔案,其中包含測試執行的所有結果。這可以透過為Ant中report任務的format屬性提供相應的值來配置。

testng_test_results.htm
廣告
© . All rights reserved.