Fork me on GitHub

TestNg测试框架使用

doc :http://testng.org/doc/documentation-main.html
github:
https://github.com/cbeust/testng
IDEA :
http://testng.org/doc/idea.html
eclipse :
http://testng.org/doc/eclipse.html

安装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'
    }
}

Refer:
http://maven.apache.org/surefire/maven-surefire-plugin/examples/testng.html#
JUnit 4 Vs TestNG – Comparison
http://www.mkyong.com/unittest/junit-4-vs-testng-comparison/
TestNG Tutorial
http://www.mkyong.com/tutorials/testng-tutorials/

 

posted @ 2014-05-17 18:36  花儿笑弯了腰  阅读(883)  评论(0编辑  收藏  举报