TestNG - 运行 JUnit 测试

  • 简述

    既然您已经了解了 TestNG 及其各种测试,那么您现在肯定会担心如何重构现有的 JUnit 代码。无需担心,因为 TestNG 提供了一种按照您自己的节奏从 JUnit 转换到 TestNG 的方法。您可以使用 TestNG 执行现有的 JUnit 测试用例。
    TestNG 可以自动识别和运行 JUnit 测试,因此您可以使用 TestNG 作为所有现有测试的运行器,并使用 TestNG 编写新测试。您所要做的就是将 JUnit 库放在 TestNG 类路径上,以便它可以查找和使用 JUnit 类,在 Ant 中将您的测试运行程序从 JUnit 更改为 TestNG,然后以“混合”模式运行 TestNG。这样,您可以将所有测试放在同一个项目中,甚至在同一个包中,然后开始使用 TestNG。这种方法还允许您将现有的 JUnit 测试逐步转换为 TestNG。
    让我们通过一个例子来展示 TestNG 的这种惊人的能力。
  • 创建 JUnit 测试用例类

    创建一个java类,它是一个JUnit测试类,TestJunit.java中 /work/testng/src.
    
      import org.junit.Test;
      import static org.testng.AssertJUnit.*;
      public class TestJunit {
         @Test
         public void testAdd() {
            String str = "Junit testing using TestNG";
            assertEquals("Junit testing using TestNG",str);
         }
      }
    
    现在,让我们将 testng.xml 写入 /work/testng/src,其中将包含 <suite> 标签,如下所示 -
    
    <?xml version = "1.0" encoding = "UTF-8"?>
    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
    <suite name = "Converted JUnit suite" >
       <test name = "JUnitTests" junit="true">
          <classes>
             <class name = "TestJunit" />
          </classes>
       </test>
    </suite>
    
    要执行 JUnit 测试用例,请在上面的 xml 中定义属性junit="true"。JUnit 测试用例类 TestJunit 在类名中定义。
    对于 JUnit 4,TestNG 将使用org.junit.runner.JUnitCore运行程序来运行您的测试。
    使用 javac 编译所有 java 类。
    
    /work/testng/src$ javac TestJunit.java
    
    现在,运行 testng.xml,它会将 JUnit 测试用例作为 TestNG 运行。
    
    /work/testng/src$java -cp "/work/testng/src/junit-4.13.2.jar:/work/testng/src/hamcrest-core-1.3.jar" org.testng.TestNG testng.xml
    
    在这里,我们将依赖的 JAR 文件 junit-4.13.2.jar 和 hamcrest-core-1.3.jar 放在 /work/testng/src/ 下。
    验证输出。
    
      ===============================================
      Converted JUnit suite
      Total tests run: 1, Passes: 1, Failures: 0, Skips: 0
      ===============================================