- TestNG 教程
- TestNG - 首页
- TestNG - 概述
- TestNG - 环境配置
- TestNG -编写测试用例
- TestNG - 基本注解
- TestNG - 执行流程
- TestNG - 执行测试
- TestNG - 套件测试
- TestNG - 忽略测试
- TestNG - 组测试
- TestNG - 异常测试
- TestNG - 依赖测试
- TestNG - 参数化测试
- TestNG - 运行JUnit测试
- TestNG - 测试结果
- TestNG - 注解转换器
- TestNG - 断言
- TestNG - 并行执行
- TestNG - 与Ant集成
- TestNG - 与Eclipse集成
- TestNG - TestNG vs JUnit
- TestNG 有用资源
- TestNG - 快速指南
- TestNG - 有用资源
- TestNG - 讨论
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); } }
上述测试类包含三个测试方法,其中testMethodOne和testMethodThree在执行时将通过,而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报告:
在这里,我们看到了如何使用TestNG生成的JUnit XML报告,并使用Ant生成HTML报告。使用此方法可以生成两种报告:带框架和无框架。
如果报告生成配置了框架,则将为每个类生成多个文件,并且主报告将通过链接连接到它们。无框架报告包含单个文件,其中包含测试执行的所有结果。这可以通过为Ant中report任务的format属性提供相应的值来配置。