TestNG - 运行 JUnit 测试


现在您已经了解了 TestNG 及其各种测试,您现在一定担心如何重构现有的 JUnit 代码。无需担心,因为 TestNG 提供了一种按照您自己的节奏从 JUnit 转换到 TestNG 的方法。您可以使用 TestNG 执行现有的 JUnit 测试用例。

TestNG 可以自动识别并运行 JUnit 测试,以便您可以使用 TestNG 作为所有现有测试的运行程序,并使用 TestNG 编写新测试。您所要做的就是将 JUnit 库放在 TestNG 类路径上,这样它就可以找到并使用 JUnit 类,将测试运行器从 JUnit 更改为 Ant 中的 TestNG,然后以“混合”模式运行 TestNG。这样,您就可以将所有测试放在同一个项目中,甚至放在同一个包中,然后开始使用 TestNG。这种方法还允许您将现有的 JUnit 测试逐步转换为 TestNG。

让我们通过一个例子来展示 TestNG 的这种惊人能力。

创建 JUnit 测试用例类

创建一个 java 类,它是一个 JUnit 测试类,位于/work/testng/src中的 TestJunit.java 。

  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);
     }
  }

现在,让我们在/work/testng/src中编写 testng.xml ,其中包含 <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 测试用例,请定义属性junit="true",如上面的 xml 中所示。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
  ===============================================