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

現在,讓我們在 **`/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,它將作為 TestNG 執行 JUnit 測試用例。

/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
  ===============================================
廣告