现在,您已经了解了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 ===============================================