zoukankan      html  css  js  c++  java
  • TestNG 一、 概论

    一、 概论
            TestNG,即Testing, NextGeneration,下一代测试技术,是一套根据JUnit 和NUnit思想而构建的利用注释来强化测试功能的一个测试框架,即可以用来做单元测试,也可以用来做集成测试。
            因为TestNG是从Junit的思想构建而来,所以TestNG具备junit等所不具备的多重功能。而且TestNG目前的使用比较广泛,google的一个selenium自动化项目组即采用的是selenium rc的java 接口+ testNG结合的方式。
            写一个测试通常分为三步:
    1.编写测试业务逻辑,并且在你的代码中插入 TestNG annotations 。
    2.在 testng.xml 或 build.xml 添加你的测试信息。例如类名,希望运行的组等等
    3.运行TestNG.
     
    文档中会使用到如下的概念:
    1.一套测试(suite)由一个XML文件所表示。它能够包含一个或者多个测试,<suite> 标记来定义。
    2.test由<test>标记来表示一个测试,并且可以包含一个或者多个TestNG类。
    3.TestNG 类是包含至少一个TestNG annotation的java类,由<class>标签描述并包含一个或多个测试方法。
    4.测试方法,就是一个普通的Java方法,在由@Test标记。
     
    testNG.xml
    testNG的运行需要一个配置文件,默认为testng.xml,其描述了要运行哪些测试等配置。
    编写testNG.xml如果没有书写提示,给在头部引入
    <!DOCTYPE suite PUBLIC "--//beust.com//testng//testng 1.0//EN" "http://beust.com/testng/testng-1.0.dtd" >就会有提示了
     
    注意:TestNG使用的是 正则表达式,而不是通配符。注意这二者的区别
    例如:"anything" 是匹配于 ".*" -- 点和星号 -- 而不是星号 "*"
    Groups
    testNG可以将各个method存放在不同的group里面,然后运行的时候可以指定要运行的group。Group指定的方式如下:
    [java] view plain copy
     
    1. @Test(groups = {"fast", "unit", "database" })  
    2. public voidrowShouldBeInserted() {}  
    二、实例
    1.创建测试类Sum

    2.创建TestNG类
    [java] view plain copy
     
    1. package com.testNg;  
    2.   
    3. import org.testng.annotations.Test;  
    4. import static org.testng.Assert.assertEquals;  
    5. import com.hpp.Sum;  
    6.   
    7. public class NewTest {  
    8.     private Sum newSum = new Sum();  
    9.   
    10.     @Test(groups = { "t1", "t2" })  
    11.     public void f() {  
    12.         int mysum = newSum.add(1, 2);  
    13.         assertEquals(3, mysum, "Right");  
    14.     }  
    15.   
    16.     @Test(groups = { "t2" })  
    17.     public void f2() {  
    18.         int mysum = newSum.add(2, 2);  
    19.         assertEquals(3, mysum, "Right");// 错误的用例  
    20.     }  
    21.   
    22.     @Test(groups = { "t1" })  
    23.     public void f3() {  
    24.         int mysum = newSum.add(1, 2);  
    25.         assertEquals(3, mysum, "Right");  
    26.     }  
    27. }  
    3.修改testNG.xml
     
    [html] view plain copy
     
    1. <?xml version="1.0"encoding="UTF-8"?>  
    2. <suite name="Suite" parallel="false">  
    3.     <testnametestname = Test ">  
    4.         <groups>  
    5.             <run>  
    6.                 <includenameincludename = t1 " />  
    7.             </run>  
    8.         </groups>  
    9.         <classes>  
    10.             <classnameclassname = com.testNg.NewTest " />  
    11.         </classes>  
    12.     </test><!-- Test -->  
    13. </suite<!--Suite -->  
    当运行t1测试组时,就仅仅运行f()和f3()方法
    运行结果
     

    修改testNG.xml运行t2测试组,其中f2()方法故意留个错误,我们看下出现bug的情况
     
     
    本文转载自:http://blog.sina.com.cn/bestfeiyong
  • 相关阅读:
    【Leetcode】【Easy】Remove Duplicates from Sorted List
    【Leetcode】【Easy】Pascal's Triangle II
    【Leetcode】【Easy】Pascal's Triangle
    【Leetcode】【Easy】Binary Tree Level Order Traversal II
    【Leetcode】【Easy】Binary Tree Level Order Traversal
    【Leetcode】【Easy】Maximum Depth of Binary Tree
    【Leetcode】【Easy】Minimum Depth of Binary Tree
    【Leetcode】【Easy】Balanced Binary Tree
    【Leetcode】【Easy】Symmetric Tree
    如何使用Action.Invoke()触发一个Storyboard
  • 原文地址:https://www.cnblogs.com/ceshi2016/p/6439910.html
Copyright © 2011-2022 走看看