- 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属性提供相应的值来配置。