在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是Java编程语言中最常用的单元测试框架之一,它为开发者提供了编写可重复执行的、可靠的测试用例的工具。在Junit中,设计模式的应用极大地增强了其灵活性和可扩展性。下面我们将深入探讨Junit中涉及到的设计...
在执行过程中,Listener 注册到 TestResult,以便在测试执行时记录测试结果。 JUnit 提供了多种断言方法,帮助我们验证代码的实际输出是否符合预期: 1. `assertEquals(String message, expected, actual)`:比较 ...
同时,JUnit 4.7支持监听器(Listener),通过实现`TestListener`接口或使用`TestRule`,可以在测试执行的不同阶段插入自定义逻辑,比如日志记录、性能测试等。 总结来说,JUnit 4.7作为Java开发中的单元测试工具,...
测试执行监听器(Test Execution Listener)则是单元测试框架中的一种机制,允许我们自定义测试执行前后的行为,例如报告、日志记录或者额外的验证。本文将通过分析"making-sense-dependency-injection-test-...
CppTest是一款强大的单元测试框架,其设计理念受到JUnit的启发,为C++开发者提供了一种方便的方式来编写和执行单元测试,以确保代码的质量和可靠性。本文件主要针对C++程序员,特别是那些对单元测试和持续集成有需求...
【标题】"emr-presto-query-event-listener"是一个专为Amazon EMR设计的插件,它使用Java语言实现,其主要功能是监听并记录Presto查询的事件,以便于进行审计和性能分析。这一插件对于监控Presto查询在EMR集群中的...
1. **HL7协议**:HL7是医疗信息交换的标准,它定义了医疗机构之间数据传输的格式和规则,如患者记录、实验室结果和处方信息等。HL7 V2是最常见版本,但也有V3和其他FHIR(Fast Healthcare Interoperability ...
- **监听器(Listener)**:可以监听并响应流程中的特定事件,如任务创建、完成、流程启动等,实现自定义行为。 - **表达式和脚本**:Activiti7支持使用EL(Expression Language)和脚本来动态计算值或控制流程行为...
- **TestNG**:对于使用TestNG的项目,可以通过Allure TestNG listener实现报告生成。 - **Cucumber**:Allure也支持行为驱动开发(BDD)的框架Cucumber,通过Allure Cucumber插件将Gherkin场景转换为详细的报告。...
- `-logger`和`-listener`允许自定义日志记录器和监听器。 - `-Dproperty=value`设置系统属性,可以在构建文件中使用。 构建文件`build.xml`的结构通常包含`<project>`、`<target>`、`<taskdef>`、`<property>`等...
- **HistoryService**: 历史服务,用于记录流程实例的历史信息,便于跟踪和分析。 - **FormService**: 表单服务,处理与表单相关的操作,如获取表单字段、提交表单等。 3. **异常处理**: - **ActivitiException...
7. **整合测试**:编写JUnit测试类,测试MyBatis的CRUD操作是否正常,同时可以通过Servlet + Listener来验证功能的正确性。 在实际开发中,你可能会遇到一些常见的问题,如SQL注入、事务控制、日志记录等。MyBatis...
cppunit与JUnit在设计上有很多相似之处,都强调简洁和易于使用。不过,由于C++与Java的语法和特性差异,cppunit更倾向于面向对象的实现,如使用继承和虚函数来创建和组织测试。此外,cppunit没有JUnit中的注解...
- **ActivitiClassLoadingException**: 加载请求的类失败时抛出,可能是因为找不到类或者加载过程中出现错误,如JavaDelegate、TaskListener等。 4. **Activiti测试**: - **JUnit支持**: Activiti支持JUnit 3和...
5. **Filter与Listener**:在Java Web中,Filter用于拦截请求和响应,可以实现权限控制、日志记录等功能。Listener则监听特定事件,如会话创建或销毁。源码可能包含自定义Filter和Listener的实现。 6. **Session与...
5. **测试监听器(Test Listener)**:可以定制化测试的输出,比如在测试失败时记录详细信息,或者在测试完成后生成测试报告。 ### 三、cppunit的使用流程 1. **创建测试案例**:首先,定义一个继承自`cppunit::...
### Maven 搭建 SSM (Spring + SpringMVC + MyBatis) 框架详解 #### 一、MyBatis Generator 工具使用方法 ...在实际开发过程中,还需要关注依赖管理、异常处理、日志记录等方面,以确保项目的健壮性和可维护性。
2. **自定义监听器**:通过实现Listener接口,可以扩展TestNG的功能,例如日志记录、测试结果分析等。 3. **动态测试方法**:在运行时根据条件动态添加或删除测试方法。 4. **测试生命周期管理**:利用@BeforeSuite...