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
创建一个文件 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属性配置。