配置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"让测试生效,也可根据情况关闭某些测试 -->
<test name="Test" enabled="true">
<!--指定参数 -->
<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(
// 在指定的时间内启用3个线程并发测试本方法10次
threadPoolSize = 3, invocationCount = 10, timeOut = 10000,
// 等待测试方法t0测试结束后开始本测试
dependsOnMethods = { "f" },
// 指定测试数据源CLASS和数据源名称(参考注解@DataProvider),返回几条数据会跑测试方法几次
dataProvider = "generate", dataProviderClass = GeneratorRandomNum.class,
// 分组名称
groups = { "checkin-test" })
// 读取配置文件中的参数,配置如上,用@Optional设置默认值
@Parameters({ "Name" })
public void f1(@Optional("name") String name) {
}
}
测试报告
运行测试后 在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'
}
}