testng-xslt美化testng測試報告
TestNg測試結束後,會自動生成html測試報告,但是顯示不夠美觀,可以說比較醜的(個人觀點^_^)。我們可以使用testng-xslt來對TestNg生成的Hhtml測試報告進行重寫、美化。
1.從官網下載testng-xslt並解壓,解壓後的目錄:
2.新建一個Java Project:
專案新建後,在src下新建一個class來編寫測試用例,示例程式碼:
3.測試用例新建好後,先執行一次,生成testng自帶的html測試報告。生成的html測試報告在專案根目錄的test-output檔案下,點選index.html就可以查看了package test; import org.testng.annotations.AfterMethod; import org.testng.annotations.Test; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Ignore; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; public class TestCase { @BeforeMethod public void BeforeMethod() { } @BeforeClass public void setUp() throws Exception{ System.out.println("測試開始前的初始化!"); } @Test public void test1() throws Exception{ System.out.println("this is test method1."); } @Test public void test2() throws Exception{ System.out.println("this is test method2."); } @Test public void add() throws Exception{ int a=5; int b=25; System.out.println("j" + "= " + a + "+" + b); } @Test public void test3() throws Exception{ System.out.println("Keydom is the best company!!"); } @Ignore public void Ignore() throws Exception{ System.out.println("this method do not run!"); } @AfterMethod public void AfterMethod() { } @AfterClass public void tearDown() throws Exception{ System.out.println("測試結束後還原測試環境!"); } }
testng生成的html報告展現介面:
4.接下來開始使用testng-xslt來重寫測試報告:
(1)把 testng-xslt目錄的 lib 檔案下的saxon-8.7.jar 和 SaxonLiason.jar 拷貝到專案的lib資料夾(若沒有則新建)下
建立lib檔案時,一般在test-output的根目錄下
(2)把 testng-xslt目錄的 /src/main/resources/目錄下的 testng-results.xsl 放到專案的test-output資料夾根目錄下(若沒有則新建)
(4)在test-output根目錄下新增一個xml檔案:
{name} :是專案的名字
{in}和{style}:對應的是testng生成報告的xml和xsl
{out}:是要用testNG-xslt生成報告的檔名和路徑
{expression}:是要用testNG-xslt生成報告的路徑
Note:{out}設定測試報告輸出時,最好生成一個新的html(即:index1.html/indenewhtml)檔案來展示測試報告,如程式碼中所示,否者build檔案在編譯的時候呈現的結果就是:ant編譯成功,但是沒有執行結果(如圖所示)。
(5)執行build檔案:右鍵→Run As →Ant build→Run<?xml version="1.0" encoding="UTF-8"?> <project name="SandyTestNg" basedir="."> <property name="lib.dir" value="lib"/> <path id="test.classpath"> <!-- adding the saxon jar to your classpath --> <fileset dir="${lib.dir}" includes="*.jar"/> </path> <target name="transform"> <property name="dir" value=""/> <!-- <mkdir dir="F:/eclipse-workspace-2/SandyTestNg/test-output/"/> --> <xslt in="F:/eclipse-workspace-2/SandyTestNg/test-output/testng-results.xml" style="F:/eclipse-workspace-2/SandyTestNg/test-output/testng-results.xsl" out="F:/eclipse-workspace-2/SandyTestNg/test-output/index1.html" classpathref="test.classpath" processor="SaxonLiaison"> <param name="testNgXslt.outputDir" expression="F:/eclipse-workspace-2/SandyTestNg/test-output" /> </xslt> </target> </project>
build檔案執行成功後的提示:
走到這一步,那麼恭喜,testng重寫完成,點選test-output檔案下的index.html就可以看到美美的測試報告了