在本教程中,我们将向您展示如何在TestNG中进行组测试。
1.方法组
查看测试组示例。
- runSelenium()和runSelenium1()属于
selenium-test
组。 - testConnectOracle()和testConnectMsSQL()属于组
database
。 - 如果通过组
selenium-test
和database
将执行runFinal()。
TestGroup.java
package com.mkyong.testng.examples.group;
import org.testng.annotations.AfterGroups;
import org.testng.annotations.BeforeGroups;
import org.testng.annotations.Test;
public class TestGroup {
@BeforeGroups("database")
public void setupDB() {
System.out.println("setupDB()");
}
@AfterGroups("database")
public void cleanDB() {
System.out.println("cleanDB()");
}
@Test(groups= "selenium-test")
public void runSelenium() {
System.out.println("runSelenium()");
}
@Test(groups= "selenium-test")
public void runSelenium1() {
System.out.println("runSelenium()1");
}
@Test(groups = "database")
public void testConnectOracle() {
System.out.println("testConnectOracle()");
}
@Test(groups = "database")
public void testConnectMsSQL() {
System.out.println("testConnectMsSQL");
}
@Test(dependsOnGroups = {"database","selenium-test"})
public void runFinal() {
System.out.println("runFinal");
}
}
输出量
//group = selenium-test
runSelenium()
runSelenium()1
//group = database
setupDB()
testConnectMsSQL
testConnectOracle()
cleanDB()
//dependsOnGroups = database, selenium-test
runFinal
PASSED: runSelenium
PASSED: runSelenium1
PASSED: testConnectMsSQL
PASSED: testConnectOracle
PASSED: runFinal
2.班上团体
“组”可以应用于班级。 在下面的示例中,此类“ TestSelenium”的每个公共方法都属于selenium-test
组。
TestSelenium.java
package com.mkyong.testng.examples.group;
import org.testng.annotations.Test;
@Test(groups= "selenium-test")
public class TestSelenium {
public void runSelenium() {
System.out.println("runSelenium()");
}
public void runSelenium1() {
System.out.println("runSelenium()1");
}
}
创建一个XML文件来运行2个测试类。
testng.xml
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="TestAll">
<test name="final">
<classes>
<class name="com.mkyong.testng.examples.group.TestSelenium" />
<class name="com.mkyong.testng.examples.group.TestGroup" />
</classes>
</test>
<!-- Run test method on group "selenium" only -->
<test name="selenium">
<groups>
<run>
<include name="selenium-test" />
</run>
</groups>
<classes>
<class name="com.mkyong.testng.examples.group.TestSelenium" />
<class name="com.mkyong.testng.examples.group.TestGroup" />
</classes>
</test>
</suite>
输出量
//test name = final
runSelenium()
runSelenium()1
setupDB()
testConnectMsSQL
testConnectOracle()
cleanDB()
runFinal
//test name = selenium
runSelenium()
runSelenium()1
===============================================
TestAll
Total tests run: 7, Failures: 0, Skips: 0
===============================================
3.其他示例
3.1一种测试方法可以属于多个组。
@Test(groups = {"mysql","database"})
public void testConnectMsSQL() {
System.out.println("testConnectMsSQL");
}
3.2以上结果是通过Eclipse TestNG插件执行的。