`

junit之记录执行的listener

阅读更多
  在junit 4中,有的时候可以在所有测试开始前,后,每个测试执行前,后进行监测,
需要继承的是RunListener类,例子如下,

首先是两个要测试的类,

public class TestFeatureOne {
	@Test
	public void testFirstFeature()
	{
		Assert.assertTrue(true);
	}
}


 
public class TestFeatureTwo {
	@Test
	public void testSecondFeature()
	{
		Assert.assertTrue(true);
	}

	@Test
	@Ignore
	public void testSecondFeatureIngored()
	{
		Assert.assertTrue(true);
	}


   然后写一个继承runlistner的类,如下:
public class ExecutionListener extends RunListener
{
	/**
	 * Called before any tests have been run.
	 * */
	public void testRunStarted(Description description)	throws java.lang.Exception
	{
		System.out.println("Number of testcases to execute : " + description.testCount());
	}

	/**
	 *  Called when all tests have finished
	 * */
	public void testRunFinished(Result result) throws java.lang.Exception
	{
		System.out.println("Number of testcases executed : " + result.getRunCount());
	}

	/**
	 *  Called when an atomic test is about to be started.
	 * */
	public void testStarted(Description description) throws java.lang.Exception
	{
		System.out.println("Starting execution of test case : "+ description.getMethodName());
	}

	/**
	 *  Called when an atomic test has finished, whether the test succeeds or fails.
	 * */
	public void testFinished(Description description) throws java.lang.Exception
	{
		System.out.println("Finished execution of test case : "+ description.getMethodName());
	}

	/**
	 *  Called when an atomic test fails.
	 * */
	public void testFailure(Failure failure) throws java.lang.Exception
	{
		System.out.println("Execution of test case failed : "+ failure.getMessage());
	}

	/**
	 *  Called when a test will not be run, generally because a test method is annotated with Ignore.
	 * */
	public void testIgnored(Description description) throws java.lang.Exception
	{
		System.out.println("Execution of test case ignored : "+ description.getMethodName());
	}




public static void main(String[] args)
	{
		JUnitCore runner = new JUnitCore();
		//Adding listener here
		runner.addListener(new ExecutionListener());
		runner.run(TestFeatureOne.class, TestFeatureTwo.class);
	}




    分别是在所有的测试进行前,进行后,每个测试开始前,调用失败后,监视忽略调的测试调用的,所以结果为:
 
  
Number of testcases to execute : 3
Starting execution of test case : testFirstFeature
Finished execution of test case : testFirstFeature
Starting execution of test case : testSecondFeature
Finished execution of test case : testSecondFeature
Execution of test case ignored : testSecondFeatureIngored
Number of testcases executed : 2
分享到:
评论

相关推荐

    Junit设计模式分析

    JUnit是Java编程语言中最常用的单元测试框架之一,它为开发者提供了编写可重复执行的、可靠的测试用例的工具。在Junit中,设计模式的应用极大地增强了其灵活性和可扩展性。下面我们将深入探讨Junit中涉及到的设计...

    JUNIT快速上手手册

    在执行过程中,Listener 注册到 TestResult,以便在测试执行时记录测试结果。 JUnit 提供了多种断言方法,帮助我们验证代码的实际输出是否符合预期: 1. `assertEquals(String message, expected, actual)`:比较 ...

    junit4.7.zip

    同时,JUnit 4.7支持监听器(Listener),通过实现`TestListener`接口或使用`TestRule`,可以在测试执行的不同阶段插入自定义逻辑,比如日志记录、性能测试等。 总结来说,JUnit 4.7作为Java开发中的单元测试工具,...

    making-sense-dependency-injection-test-execution-listener-源码.rar

    测试执行监听器(Test Execution Listener)则是单元测试框架中的一种机制,允许我们自定义测试执行前后的行为,例如报告、日志记录或者额外的验证。本文将通过分析"making-sense-dependency-injection-test-...

    cxxtest-guide-3.10.1.rar_JUnit_cpptest_cxxtest

    CppTest是一款强大的单元测试框架,其设计理念受到JUnit的启发,为C++开发者提供了一种方便的方式来编写和执行单元测试,以确保代码的质量和可靠性。本文件主要针对C++程序员,特别是那些对单元测试和持续集成有需求...

    emr-presto-query-event-listener:使用Java实现查询事件侦听器插件,以将Presto统计信息记录在Amazon EMR上,以进行审计和性能洞察

    【标题】"emr-presto-query-event-listener"是一个专为Amazon EMR设计的插件,它使用Java语言实现,其主要功能是监听并记录Presto查询的事件,以便于进行审计和性能分析。这一插件对于监控Presto查询在EMR集群中的...

    IBM Servlet监听器课件

    - 可以利用IDE提供的单元测试框架(如JUnit)来编写针对监听器的测试案例。 通过上述知识点的学习,可以深入了解Servlet监听器的基本概念、应用场景、创建方法及其在Web应用中的配置方式,为实际项目开发提供有力...

    Camel-HL7-Listener

    1. **HL7协议**:HL7是医疗信息交换的标准,它定义了医疗机构之间数据传输的格式和规则,如患者记录、实验室结果和处方信息等。HL7 V2是最常见版本,但也有V3和其他FHIR(Fast Healthcare Interoperability ...

    Activiti7(流程引擎)简单笔记,附带作者执行的Demo代码文件

    - **监听器(Listener)**:可以监听并响应流程中的特定事件,如任务创建、完成、流程启动等,实现自定义行为。 - **表达式和脚本**:Activiti7支持使用EL(Expression Language)和脚本来动态计算值或控制流程行为...

    allure测试报告的测试

    - **TestNG**:对于使用TestNG的项目,可以通过Allure TestNG listener实现报告生成。 - **Cucumber**:Allure也支持行为驱动开发(BDD)的框架Cucumber,通过Allure Cucumber插件将Gherkin场景转换为详细的报告。...

    Ant基本使用指南(入门教程)

    - `-logger`和`-listener`允许自定义日志记录器和监听器。 - `-Dproperty=value`设置系统属性,可以在构建文件中使用。 构建文件`build.xml`的结构通常包含`<project>`、`<target>`、`<taskdef>`、`<property>`等...

    工作流Activiti的学习总结(五) activiti的API和虚拟工作流测试.pdf

    - **HistoryService**: 历史服务,用于记录流程实例的历史信息,便于跟踪和分析。 - **FormService**: 表单服务,处理与表单相关的操作,如获取表单字段、提交表单等。 3. **异常处理**: - **ActivitiException...

    mybatis test 项目

    7. **整合测试**:编写JUnit测试类,测试MyBatis的CRUD操作是否正常,同时可以通过Servlet + Listener来验证功能的正确性。 在实际开发中,你可能会遇到一些常见的问题,如SQL注入、事务控制、日志记录等。MyBatis...

    cppunit测试

    cppunit与JUnit在设计上有很多相似之处,都强调简洁和易于使用。不过,由于C++与Java的语法和特性差异,cppunit更倾向于面向对象的实现,如使用继承和虚函数来创建和组织测试。此外,cppunit没有JUnit中的注解...

    工作流Activiti的学习总结(五)activiti的API和虚拟工作流测试.pdf

    - **ActivitiClassLoadingException**: 加载请求的类失败时抛出,可能是因为找不到类或者加载过程中出现错误,如JavaDelegate、TaskListener等。 4. **Activiti测试**: - **JUnit支持**: Activiti支持JUnit 3和...

    30天学通Java Web项目案例开发(下)源码

    5. **Filter与Listener**:在Java Web中,Filter用于拦截请求和响应,可以实现权限控制、日志记录等功能。Listener则监听特定事件,如会话创建或销毁。源码可能包含自定义Filter和Listener的实现。 6. **Session与...

    cppunit test 测试源代码

    5. **测试监听器(Test Listener)**:可以定制化测试的输出,比如在测试失败时记录详细信息,或者在测试完成后生成测试报告。 ### 三、cppunit的使用流程 1. **创建测试案例**:首先,定义一个继承自`cppunit::...

    maven搭建SSM框架

    ### Maven 搭建 SSM (Spring + SpringMVC + MyBatis) 框架详解 #### 一、MyBatis Generator 工具使用方法 ...在实际开发过程中,还需要关注依赖管理、异常处理、日志记录等方面,以确保项目的健壮性和可维护性。

    TestNG教程(英文版)

    2. **自定义监听器**:通过实现Listener接口,可以扩展TestNG的功能,例如日志记录、测试结果分析等。 3. **动态测试方法**:在运行时根据条件动态添加或删除测试方法。 4. **测试生命周期管理**:利用@BeforeSuite...

Global site tag (gtag.js) - Google Analytics