JUnit是單元框架,最初用於許多Java應用軟件作為一個單元測試框架之一。默認情況下,JUnit測試生成一個簡單的XML文件測試執行報告。然後這些XML文件可以被用來生成任何自定義報表按測試要求。我們也可以使用XML文件生成HTML報告。Ant的有這樣一個實用的任務,需要這些JUnit的XML文件作為輸入,並生成一個HTML報告。
TestNG默認情況下,生成JUnit的XML執行任何測試報告(測試輸出文件夾中)。我們可以使用這些XML格式的報告文件作為一個JUnit HTML報告生成的輸入。讓我們看看下麵的例子:
創建一個java類名為 SampleTest.java 在 C:\ > TestNG_WORKSPACE
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); } }
上述測試類的包含三個測試方法,其中將通過在執行testMethodOne和testMethodThree,其中作為testMethodTwo失敗通過一個false的布爾值到Assert.assertTrue方法,它是用於在測試中的真值條件。
創建一個文件 testng.xml 在 C:\ > TestNG_WORKSPACE 來執行測試用例
<?xml version="1.0" encoding="UTF-8"?> <suite name="Simple Suite"> <test name="Simple test"> <classes> <class name="SampleTest" /> </classes> </test> </suite>
編譯使用javac SampleTest類。
C:\TestNG_WORKSPACE>javac SampleTest.java
現在,運行testng.xml。
C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml
驗證輸出。
=============================================== Simple Suite Total tests run: 3, Failures: 1, Skips: 1 ===============================================
現在,我們已經可以從上麵執行JUnit的XML報告,讓我們創建一個簡單的Ant構建配置XML文件來生成一個HTML報告測試執行。
創建一個新的文件名為 build.xml 在目錄 C:\ > TestNG_WORKSPACE 中
<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文件,具有特定的Ant目標名為JUnit的報告,執行時產生一個JUnit報告。目標看起來JUnit報告XML文件目錄下test-output/junitreports。 Ant配置文件的默認目標執行配置JUnit的報告。
打開命令提示符窗口,然後轉到 C:\ > TestNG_WORKSPACE 目錄在命令提示符下運行以下命令:
C:\TestNG_WORKSPACE> ant
一旦執行,一個JUnit HTML報告,將產生配置目錄/html-report/Junit。打開文件名為
junit-noframes.html
默認Web瀏覽器上。你會看到下麵的HTML報告:
在這裡,我們看到了如何使用JUnit XML報告由TestNG產生和使用Ant生成HTML報告。有兩種類型的報告,可以使用這種方法產生的:幀和無幀。如果報表生成幀配置,為每個類和主報告生成多個文件,將他們連接到通過鏈接。一個無幀報告由一個單一的文件執行測試的所有結果。這可以通過提供相應的值在Ant報告任務的format屬性配置。