`
longgangbai
  • 浏览: 7331887 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

TestNG简单的学习(十)TestNG @Listeners 的使用

阅读更多

TestNG官方网站:

http://testng.org/doc/documentation-main.html

 

官方文档:

/**
 * 
 */
package com.easyway.testng.junit;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import org.testng.IMethodInstance;
import org.testng.IMethodInterceptor;
import org.testng.ITestContext;
import org.testng.annotations.Test;

/**
 * @author longgangbai 2013-11-29 下午4:31:40
 * 
 */
public class MyMethodInterceptor implements IMethodInterceptor {

	/*
	 * (non-Javadoc)
	 * 
	 * @see org.testng.IMethodInterceptor#intercept(java.util.List,
	 * org.testng.ITestContext)
	 */
	@Override
	public List<IMethodInstance> intercept(List<IMethodInstance> methods,
			ITestContext context) {
		List<IMethodInstance> result = new ArrayList<IMethodInstance>();

		for (IMethodInstance m : methods) {
			Test test = m.getMethod().getConstructorOrMethod().getMethod()
					.getAnnotation(Test.class);
			Set<String> groups = new HashSet<String>();
			for (String group : test.groups()) {
				groups.add(group);
			}
			System.out.println("groups +"+groups );
			if (groups.contains("fast")) {
				result.add(0, m);
			} else {
				result.add(m);
			}
		}
		return result;
	}
}

 

/**
 * 
 */
package com.easyway.testng.junit;

import org.testng.annotations.Listeners;
import org.testng.annotations.Test;


/**
 * 5.17.1 - Specifying listeners with testng.xml or in JavaHere is how you can define listeners in your testng.xml file: view sourceprint?<suite>  

   

  <listeners>  

    <listener class-name="com.example.MyListener" />  

    <listener class-name="com.example.MyMethodInterceptor" />  

  </listeners>  

   

... 
Or if you prefer to define these listeners in Java: view sourceprint?@Listeners({ com.example.MyListener.class, com.example.MyMethodInterceptor.class })  

public class MyTest {  

  // ...  

} 
The @Listeners annotation can contain any class that extends org.testng.ITestNGListener except IAnnotationTransformer and IAnnotationTransformer2. The reason is that these listeners need to be known very early in the process so that TestNG can use them to rewrite your annotations, therefore you need to specify these listeners in your testng.xml file. 
Note that the @Listeners annotation will apply to your entire suite file, just as if you had specified it in a testng.xml file. If you want to restrict its scope (for example, only running on the current class), the code in your listener could first check the test method that's about to run and decide what to do then. 

 * @author longgangbai
 * 2013-11-29  下午4:12:17
 *
 */
@Listeners({  MyMethodInterceptor.class })  
public class MyListenerTest {
	@Test
	public void test1() { 
		System.out.println("=================test1=============");
	}  

	   
    
	@Test
	public void test2() {  
		System.out.println("=================test2=============");
	} 

}

 

 

分享到:
评论

相关推荐

    testng-6.7.jar TestNG依赖包

    9. **监听器(Listeners)**:TestNG支持自定义监听器,可以监听测试的各个阶段,如测试开始、结束、失败等,从而实现定制化的日志记录、报告生成等功能。 `testng-6.7-sources.jar`文件则包含了TestNG 6.7版本的源...

    testng-6.9.4和testng-6.8.8.zip

    TestNG是Java编程语言中的一款强大的自动化测试框架,与JUnit和Selenium等工具配合使用,为软件测试提供了全面且灵活的解决方案。TestNG由Cédric Beust创建,旨在提高测试效率并支持更复杂的测试场景,如并发测试、...

    TestNG学习文档英文版.pdf版

    13. **测试监听器(Test Listeners)**:学习如何自定义监听器来扩展TestNG的行为。 通过本教程的学习,你将能够有效地利用TestNG框架来设计和执行复杂的测试方案,提升你的软件测试能力。随着你对TestNG的熟练掌握...

    org.testng.ecplise_6.10

    10. **Listeners**:TestNG支持监听器,通过实现接口或继承抽象类,可以自定义测试行为,如结果输出、日志记录等。 安装`org.testng.eclipse_6.10.0.201612030230`插件到Eclipse后,开发者可以在Eclipse IDE内直接...

    testng-6.10.jar

    10. **Listeners**:TestNG支持监听器,允许自定义事件处理,如测试开始、结束、失败等,可以扩展报告功能或者实现定制的日志记录。 11. **配置方法**:@BeforeMethod、@AfterMethod、@BeforeClass、@AfterClass等...

    testng注解介绍例子

    11. **@Listeners**:TestNG允许注册监听器,如`MyITestListener.java`,来监听测试的生命周期事件,如测试开始、结束、失败等,实现更复杂的日志记录、报告生成等功能。 12. **@InheritClasses** / **@...

    java测试新技术-TestNG和高级概念

    8. 测试监听器(Test Listeners):TestNG允许创建测试监听器,监听器可以监听到测试套件、测试类和测试方法的生命周期事件。这包括测试开始前后的事件,以及测试通过、失败或跳过的事件。监听器可以用来记录测试结果...

    TestNG教程

    总之,TestNG为Java开发者提供了一个强大而灵活的测试框架,通过深入学习和实践,可以帮助我们构建更加健壮、高效的自动化测试解决方案。这份"TestNG教程@www.java1234.com.pdf"文档将详尽阐述上述内容,对于想要...

    TestNg测试ppt

    **TestNG**,即 **Test Next Generation**,是一个强大的测试框架,它主要用于简化 Java 应用程序的测试过程,从简单的单元测试扩展到复杂的集成测试场景。与 JUnit 相比,TestNG 提供了更丰富的功能和更大的灵活性...

    testng 官方文档中文翻译

    TestNG 是一个强大的自动化测试框架,它在Java领域被广泛使用,为开发人员和测试工程师提供了灵活、功能丰富的测试解决方案。相较于JUnit,TestNG引入了许多先进的特性,使其更适合大规模的测试项目。 TestNG的核心...

    testng-6.8.5.jar

    11. **听众(Listeners)**:TestNG允许添加监听器,监听测试的各个阶段,进行自定义处理,如日志记录、定制报告等。 12. **软断言(Soft Asserts)**:在软断言模式下,即使测试中有多个断言失败,TestNG也会继续...

    java-testng-jar包

    源代码jar包使得开发者可以直接查看和理解TestNG的内部工作原理,这对于学习和定制TestNG行为非常有价值。你可以通过IDE(如IntelliJ IDEA或Eclipse)导入这个源码库,然后进行调试或查阅源代码来增强对TestNG的理解...

    testng 官方文档中文翻译 2

    - **监听器(Listeners)**:自定义监听器可以扩展TestNG的功能,例如自定义报告、日志记录、异常处理等。 5. **异常处理** - **预期异常(Expected Exceptions)**:`@Test`注解中的`expectedExceptions`属性...

    TestNG重跑配置.rar

    例如,我们可以使用`listeners`元素添加一个监听器,如`org.uncommons.reportng.HTMLReporter`和`org.testng.reporters.SuiteHTMLReporter`,这些监听器可以帮助我们生成详细的测试报告。同时,我们还需要引入`org....

    TestNG系列教程并行执行测试Java开发Java经验技

    5. **Listeners**:TestNG支持监听器,它们可以在测试生命周期的不同阶段接收事件并作出反应。通过自定义监听器,可以实现对并行测试的监控和日志记录,以更好地理解测试过程。 6. **数据驱动测试**:TestNG的数据...

    testng-disabled-tests:Java库,可在给定的TestNG项目中收集禁用的TestNG测试

    Java库,允许使用简单注释在给定的TestNG项目中收集禁用的TestNG测试。 常见用法示例: @Listeners(DisabledTestsListener.class) public class InventoryTests { @Test @DisabledTestsCollector(testsPath = "/...

    Tatoc_TestNG

    TestNG是一款功能强大的Java测试框架,它在JUnit和JUnit4的基础上进行了扩展,提供了更丰富的功能,使得测试...通过学习和实践"Tatoc_TestNG"项目,开发者可以深入了解TestNG的使用技巧,提高自动化测试的效率和质量。

    TRP:使用自定义 TestNG 报告器进行试用

    本文将深入探讨如何使用自定义 TestNG 报告器进行测试,以及如何将这个功能集成到您的项目中。 首先,理解 TestNG 的默认报告是非常重要的。TestNG 默认提供了详细的 HTML 报告,包括测试方法、测试类、测试失败...

    TestNG_Allure_best

    TestNG 和 Allure 是两种在软件测试领域广泛使用的工具,它们分别是自动化测试框架和测试报告生成工具。在本文中,我们将深入探讨TestNG和Allure的集成使用,以及如何利用它们来提升你的测试效率和报告质量。 ...

    Testng_for_hris

    TestNG的设计理念是使得单元测试和功能测试变得更加简单和高效,尤其在人力资源信息系统(HRIS)这样的复杂项目中,它的价值更加显著。 TestNG的核心概念包括测试套件(Test Suite)、测试类(Test Class)、测试...

Global site tag (gtag.js) - Google Analytics