TestNg測試框架使用
安裝Eclipse插件
For Eclipse 3.4 and above, enter http://beust.com/eclipse.
For Eclipse 3.3 and below, enter http://beust.com/eclipse1.
Maven支持TestNG
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.homeinns.web</groupId> <artifactId>homeinns-testng</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>homeinns-testng</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.1.1</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.16</version> <configuration> <suiteXmlFiles> <suiteXmlFile>testng.xml</suiteXmlFile> <!-- <suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile> --> </suiteXmlFiles> </configuration> </plugin> </plugins> </build> </project> |
配置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 \target\surefire-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' } } |