JUnit Reports
JUnit是最初被许多Java应用程序用作单元测试框架的单元框架之一。 默认情况下,JUnit测试会为其测试执行生成简单的报告XML文件。 然后,可以使用这些XML文件根据测试要求生成任何自定义报告。 我们还可以使用XML文件生成HTML报告。 Ant有这样一个实用程序任务,它将这些JUnit XML文件作为输入并生成HTML报告。
默认情况下,TestNG为任何测试执行生成JUnit XML报告(在test-output文件夹中)。 我们可以使用这些XML报告文件作为生成JUnit HTML报告的输入。 让我们举个例子。
创建测试用例类 (Create Test Case Class)
在C:\》 TestNG_WORKSPACE创建一个java类,比如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);
}
}
前面的测试类包含三个测试方法, testMethodOne和testMethodThree将在执行时传递,而testMethodTwo通过将false布尔值传递给Assert.assertTrue方法而失败,该方法用于测试中的真值条件。
Create testng.xml
在C:\》 TestNG_WORKSPACE创建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类。
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报告。
在C:\》 TestNG_WORKSPACE文件夹下创建一个名为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。
打开命令提示符窗口并转到命令提示符下的C:\> TestNG_WORKSPACE目录并运行命令:
C:\TestNG_WORKSPACE> ant
执行后,将在配置的目录/ html-report/Junit中生成JUnit HTML报告。 在默认Web浏览器上打开名为junit-noframes.html的文件。 您将看到以下HTML报告 -
在这里,我们已经了解了如何使用TestNG生成的JUnit XML报告并使用Ant生成HTML报告。 可以使用此方法生成两种报告: frames和no-frames 。
如果使用框架配置报告生成,则会为每个类生成多个文件,主报告将通过链接连接到它们。 no-frames报告由一个文件组成,其中包含测试执行的所有结果。 这可以通过为Ant中的报告任务的format属性提供相应的值来配置。