配置TestNg suite
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "
http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="none">
<!--enabled="true"讓測試生效,也可根據(jù)情況關(guān)閉某些測試 -->
<test name="Test" enabled="true">
<!--指定參數(shù) -->
<parameter name="Name" value="Irving" />
<parameter name="Sex" value="Man" />
<!--指定測試包 -->
<packages>
<package name="com.homeinns.web.testng.*" />
</packages>
<!--指定測試類 -->
<classes>
<class name="com.homeinns.web.testng.AppTest" />
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
TestNg注解配置
public class NgTest {
@Test
public void f() {
}
@Test(
// 在指定的時間內(nèi)啟用3個線程并發(fā)測試本方法10次
threadPoolSize = 3, invocationCount = 10, timeOut = 10000,
// 等待測試方法t0測試結(jié)束后開始本測試
dependsOnMethods = { "f" },
// 指定測試數(shù)據(jù)源CLASS和數(shù)據(jù)源名稱(參考注解@DataProvider),返回幾條數(shù)據(jù)會跑測試方法幾次
dataProvider = "generate", dataProviderClass = GeneratorRandomNum.class,
// 分組名稱
groups = { "checkin-test" })
// 讀取配置文件中的參數(shù),配置如上,用@Optional設(shè)置默認(rèn)值
@Parameters({ "Name" })
public void f1(@Optional("name") String name) {
}
}
測試報告
運(yùn)行測試后 在my-testng/test-output/ 目錄下(maven argetsurefire-reports)
gradle配置
subprojects {
apply plugin: 'java'
// Disable the test report for the individual test task
test {
reports.html.enabled = false
}
}
task testReport(type: TestReport) {
destinationDir = file("$buildDir/reports/allTests")
//Include the results from the `test` task in all subprojects
reportOn subprojects*.test
}Grouping TestNG tests
test {
useTestNG {
excludeGroups 'integrationTests'
includeGroups 'unitTests'
}
}