如何在testng.xml配置中使用groups标签,实践

原创 2015年11月19日 14:22:07

由于大量的测试用例,用例本身测试重点不一样。在Testng.xml配置文件进入了group概念,这样用例按照组的方式执行,便于重点考察哪些功能点。 下面就说说实践。

1. 在testng-groups.xml文件中,加入要执行的group

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="TC_Operation_Suite" parallel="none" preserve-order="true">
<test name="swiftcoder2_0.TC_Operation">
   <groups>
       <run>         
             <include name ="test.workflow" />   //这里配置除@Test annotation  以外,用专门的标注 @Configuration指定类中的其他特定方法
       <include name ="come" /> // 组名come,运行,
        <exclude name ="go" /> // 组名go,不运行
       </run>
   </groups>
   <classes>
   <class name = "ToBeTestedClass name" /> //在哪个类中执行以上groups
   </classes>
</test> <!-- Test -->

</suite> <!-- Suite -->

注意点:

a.  groups必须在test标签里面。(参考文档 :http://www.cnblogs.com/choosewang/articles/3079983.htmlXML文件写法

b.  include name必须在代码中真正存在

2.  ToBeTestedClass.java代码

package example1; 

 import org.testng.annotations.*; 

public class ToBeTestedClass { 
@BeforeTest
@Configuration(beforeTestClass = true,groups = {"test.workflow"}) 
public void setUp() { 
    
System.out.println("----Before Test--------");
@AfterTest
@Configuration(afterTestClass= true, groups = {"test.workflow"})
public void TearDown(){
	System.out.println("----After Test--------");
}
		

  @Test(groups = { "come" }) 
  public void comeTest() { 
    System.out.println("Hello World"); 
    throw new Error(); 
  } 

  @Test(groups = { "go" }) 
  public void goTest() { 
     System.out.println("Bye Bye"); 
  } 

  @Test(groups = { "come" }) 
  public void comeTestAgain() { 
     System.out.println("Hello World Again"); 
    
  } 
@BeforeMethod
@Configuration(beforeTestMethod= true, groups = {"test.workflow"})
public void BeforeMethod() throws InterruptedException{
	System.out.println("----Before Method--------");
			
}
@AfterMethod
@Configuration(afterTestMethod= true, groups = {"test.workflow"})
public  void AfterMethod() throws InterruptedException{
	
	System.out.println("----After Method--------");
}
}
说明点:

1. @Test注释含有@group注释属于哪一组,如果在testng_group.xml配置include中,则表示运行此组名的所有@Test,反之,exclude表示不执行

2.如果您使用组,那么配置方法也必须属于某个组。详见代码和配置文件背景颜色为紫色的。如果初始条件不配置group的话,这些初始情况是不会执行的

(http://www.ibm.com/developerworks/cn/java/j-testng/  

TestNG 使 Java 单元测试轻而易举(查看配置方法内容))

3. 了解@Configuration annotation的使用(http://www.ibm.com/developerworks/cn/java/j-test-ng/  

Eclipse 3.1 中使用TestNG:基于注释的单元测试框架

清单3 configuration中的属性)


其他参考文档:

http://www.ibm.com/developerworks/cn/java/j-lo-testng/  

使用 TestNG 的新特性管理实际项目中的大量单元测试
http://testng.org/doc/documentation-main.html#test-groups
Testng官网文档


3. 执行Testng_groups.xml文件:

类似

[TestNG] Running:
  E:\Documents\QA.Management\automation\swiftcoder2_0\testng-groups.xml

Hello World

Hello World Again!

===============================================
TC_Operation_Suite
Total tests run: 2, Failures: 0, Skips: 0
===============================================

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

TestNG的组测试和组中组测试

在编写测试的过程中,我们经常遇到只想执行个别或者某一部分/某一类型的测试用例,这时我们可以使用TestNG的分组测试方法

TestNG中的组groups概念

在TestNG中,组groups的概念主要是相对于测试方法而言的。即,将具有相似功能的测试方法分组,这样在定义测试用例的时候就可以以组为单位加入对应的测试方法。 总体来讲,组的定义可以有两种途径:一...

TestNG的testng.xml配置概述

TestNG提供的annotaions用来辅助定义测试类。 TestNG的testng.xml配置文件用来辅助定义执行什么样的测试,即testng.xml更像是一个测试规划。 testng.xml...

Spring4.3.x 浅析xml配置的解析过程(8)——解析context命名空间之component-scan标签

概述Spring context命名空间有property-placeholder、property-override、annotation-config、component-scan、load-ti...

Mybatis与spring集成、Mybatis中xml配置文件标签含义

spring与Mybatis集成:spring配置文件中配置(扫描相应的xml文件)Mybatis相关信息,达到spring帮忙管理Mybatis效果,从而集成成功。spring配置文件中加载所有配置...

struts.xml配置文件的各个 标签/属性 解析(转)

指定Web应用的默认编码集,相当于调用 HttpServletRequest的setCharacterEncoding方法 该属性指定需要Struts 2处理的请求后缀,该属性的默认值...

Spring4.3.x 浅析xml配置的解析过程(11)——解析aop命名空间之scoped-proxy标签

概述Spring为生命周期长的bean调用生命周期短的bean提供了三种解决方案。第一种是使用默认命名空间(beans)的标签;第二种是使用context命名空间的解析@Scope注解;第三种是使用A...

Spring4.3.x 浅析xml配置的解析过程(6)——解析context命名空间之property-placeholder和property-override标签

概述在上一篇解析自定义命名空间的标签 中,我们已经知道解析自定义命名空间的标签需要用到NamespaceHandler接口的实现类,并且知道spring是如何获取命名空间对应的命名空间处理器对象的。因...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)