TestNG - Junit 报告

  • 简述

    JUnit 是那些最初被许多 Java 应用程序用作单元测试框架的单元框架之一。默认情况下,JUnit 测试为其测试执行生成简单的报告 XML 文件。然后,这些 XML 文件可用于根据测试要求生成任何自定义报告。我们还可以使用 XML 文件生成 HTML 报告。Ant 有这样一个实用程序任务,它将这些 JUnit XML 文件作为输入并生成一个 HTML 报告。
    默认情况下,TestNG 为任何测试执行(在test-output文件夹中)生成 JUnit XML 报告。我们可以使用这些 XML 报告文件作为生成 JUnit HTML 报告的输入。让我们举个例子。
  • 创建测试用例类

    创建一个java类,比如说, SampleTest.java/work/testng/src.
    
    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);
       }
    }
    
    前面的测试类包含三个测试方法,其中testMethodOnetestMethodThree将在执行时通过,而testMethodTwo通过将false布尔值传递给 Assert.assertTrue 方法而失败,该方法用于测试中的真值条件。
  • 创建 testng.xml

    在中创建 testng.xml /work/testng/src 执行测试用例。
    
    <?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 报告。
    在下面创建一个名为 build.xml 的新文件 /work/testng/src 文件夹。
    
    <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 报告 -
    JUnit 报告
    在这里,我们已经看到了如何使用 TestNG 生成的 JUnit XML 报告并使用 Ant 生成 HTML 报告。使用此方法可以生成两种类型的报告:framesno-frames.
    如果报表生成配置有框架,则每个类都会生成多个文件,主报表将通过链接连接到它们。一种no-frames报告由单个文件组成,其中包含测试执行的所有结果。这可以通过为 Ant 中报告任务的格式属性提供相应的值来配置。