在测试框架(如JUnit和TestNG)中测试执行监听器的典型用例是什么?

时间:2012-10-23 06:19:48

标签: java spring testing junit testng

JUnit,TestNG和Spring测试将测试执行侦听器作为扩展机制。测试执行监听器似乎是框架开发人员和工具开发人员感兴趣的低级功能。

Test执行侦听器有用的主要用例是什么?它们对应用程序开发人员有用吗?

2 个答案:

答案 0 :(得分:4)

在testng的情况下,列表中的人对我来说是最显着的。 testNg列表允许我简单地测试测试方法内容,并通过服务器启动,用户注册,填充测试所需的工件来管理每个测试。并且还清理每个测试周期的环境。

在每个听众级别我执行以下操作,所以我不必在我的测试中打扰他们

<强> IExecutionListener

   - onExecutionStart()
         Emma instrumentations
         Server start 
  - onExecutionFinish()
         Server Sutdown
         Emma report generation
  • <强> ISuiteListener        设置环境属性ex-密钥库路径

       Populate Users.
    
  • <强> ITestListener

    • 开始时

       Artifact Deployment
      
    • 完成

        Artifact Clean up
      
  • <强> IReporter

  • 生成TestNg报告,              生成确定报告,              导出仪表板数据

答案 1 :(得分:2)

对于JUnit,侦听器被设计为一种报表方法,并在内部使用。因此,您可以显示已执行的测试计数,成功,失败,错误等等。这也在外部使用,例如在maven-surefire中。请参阅JUnit4RunListener.java作为示例。

另一种用途是以不同的格式输出,例如XML。我认为其他框架的主要用例是相同的。

在JUnit中,监听器类不应该以Dharshana在testng中使用他的测试监听器的方式使用,即作为设置/拆卸。监听器(DescriptionFailureResult)中使用的对象是不可变的,不鼓励直接访问测试类本身。我不确定TestNG,Cedric会是一个更好的问题。

它们对应用程序开发人员有用吗?它们可能很好,取决于您的测试设置方式。它们只会在测试环境中使用,所以如果它们可以改进它们,那么继续使用它们。一个用例是JUnit test report enrichment with JavaDoc,请参阅my answer。回顾一下,如果开发人员为特定的bug添加了测试,那么他们可以在该测试中添加一个注释,将其链接回bug。有一个自定义RunListener,它一起收集注释中的所有信息,并为最终客户生成报告。