JUnit、TestNG 和 Spring 测试具有测试执行侦听器作为扩展机制。测试执行侦听器似乎是框架开发人员和工具开发人员感兴趣的低级功能。
测试执行侦听器有用的主要用例是什么?它们对应用程序开发人员有用吗?
在 testng 的情况下,listners 对我来说是最了不起的事情。testNg 列表器允许我简化测试方法的内容,并通过服务器启动、用户注册、填充测试所需的工件来管理每个测试。并且还为每个测试周期清理环境。
在每个侦听器级别,我都在执行以下操作,因此我不必在测试中打扰它们
IExecutionListener
- onExecutionStart()
Emma instrumentations
Server start
- onExecutionFinish()
Server Sutdown
Emma report generation
ISuiteListener 设置环境属性 ex- Key Store Paths
Populate Users.
ITestListener
开始时
Artifact Deployment
完成时
Artifact Clean up
记者
生成 TestNg 报告,生成可靠报告,为 Dashboard 导出数据
对于 JUnit,侦听器被设计为一种报告方法,并在内部像这样使用。因此,您可以显示执行的测试计数、成功、失败、错误等。这也可以在外部使用,例如在maven-surefire中。以 JUnit4RunListener.java为例。
另一种用途是以不同的格式输出,例如 XML。我认为其他框架的主要用例是相同的。
在 JUnit 中,侦听器类不打算以 Dharshana 在 testng 中使用他的测试侦听器的方式使用,即作为设置/拆卸。Listeners 中使用的对象(Description、Failure、Result)是不可变的,不鼓励直接访问测试类本身。我不确定 TestNG,Cedric 会是一个更好的人问这个问题。
它们对应用程序开发人员有用吗?它们很可能是,这取决于您的测试是如何设置的。它们只会在测试的上下文中使用,所以如果他们可以改进它们,那么继续使用它们。一个用例是使用 JavaDoc 丰富 JUnit 测试报告,请参阅我的回答。回顾一下答案,如果开发人员为特定错误添加测试,那么他们可以向该测试添加注释,将其链接回错误。有一个自定义的 RunListener,它将注释中的所有信息收集在一起,并为最终客户生成报告。