現在,您已經了解了TestNG和它的各種測試,如果現在擔心如何重構現有的JUnit代碼,那就冇有必要,使用TestNG提供了一種方法,從JUnit和TestNG按照自己的節奏。也可以使用TestNG執行現有JUnit測試用例。
TestNG可以自動識彆和運行JUnit測試,所以你可以使用TestNG運行所有的測試,並編寫新的測試使用TestNG。所有你必須做的就是把JUnit的庫TestNG的類路徑上,它可以發現並使用JUnit類,改變測試運行從JUnit和TestNG Ant中,然後運行TestNG的“mixed”模式。這種方式可以在同一個項目中所有的測試,即使是在同一個包中,並開始使用TestNG。這種方法還可以轉換您現有的JUnit測試到TestNG。
讓我們來看看下麵的例子中,並嘗試了上述功能:
創建一個Java類,這是一個JUnit測試類, TestJunit.java 在 C:\ > TestNG_WORKSPACE
import org.junit.Test; import static org.testng.AssertJUnit.assertEquals; public class TestJunit { @Test public void testAdd() { String str= "Junit testing using TestNG"; assertEquals("Junit testing using TestNG",str); } }
現在,讓我們來編寫 testng.xml 在 C:\ > TestNG_WORKSPACE 應該包涵 <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 運行測試。
所有Java類編譯使用javac。
C:\TestNG_WORKSPACE>javac TestJunit.java
現在運行testng.xml,這將運行TestNG的JUnit測試用例。
C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE:C:\TestNG_WORKSPACE\lib\junit-4.11.jar" org.testng.TestNG testng.xml
在這裡,我已經放在了 junit-4.11.jar 在 C:\TestNG_WORKSPACE\lib\junit-4.11.jar下麵.
驗證輸出。
=============================================== Converted JUnit suite Total tests run: 1, Failures: 0, Skips: 0 ===============================================