ReportNG不提供任何报告

时间:2011-06-16 05:50:07

标签: selenium report automated-tests testng reportng

我听说ReportNG比TestNG的正常报告创建了更好的报告。我试图创建ReportNG报告,但失败了。我正在使用Eclipse,我已经下载了ReportNG,并将reportng-1.1.3.jar和velocity-dep-1.4.jar添加到了classpath中,并编写了testng-suite.xml,如下所示:

<suite name="SA" verbose="10">
<listeners>
  <listener class-name="org.uncommons.reportng.HTMLReporter" />
  <listener class-name="org.uncommons.reportng.JUnitXMLReporter" />
</listeners>
...
</suite>   

当我执行时,我可以看到TestNG默认报告而不是ReportNG报告。我还应该做些什么来获取ReportNG的报告(比如扩展任何类或实现监听器或编写代码片段)?

另外我听说我必须使用命令,useDefaultListeners =“false”,但是我应该在testng-suite.xml中包含哪些内容?每个人都在讲ANT,但我个人并不喜欢它。那么有没有办法将上述命令包含在testng-suite.xml中?

3 个答案:

答案 0 :(得分:3)

我是ReportNG的作者。您无需编写任何Java代码即可使其工作。您只需要能够使用您使用的任何工具向TestNG注册监听器。

我只使用了Ant的ReportNG,但其他人已经使用了其他构建系统,如Maven和Gradle。我不知道是否有任何特定的Selenium会阻止它工作。你收到任何错误信息吗?我要检查的第一件事是确保ReportNG JAR在类路径上。

我甚至没有意识到您可以在testng.xml文件中指定TestNG侦听器。但是,我刚刚修改了我的示例报告,以这种方式而不是在Ant构建文件中指定了监听器,并且它工作正常,所以问题可能在于您从Selenium配置TestNG的方式。

答案 1 :(得分:3)

你是如何从Eclipse发布的?您应该右键单击该XML文件并选择“Run as ... TestNG suite”。我假设你正在做的事情。

使用默认侦听器不应该对您看到的问题产生任何影响,我猜有些人使用它,因为如果他们使用ReportNG,他们不关心TestNG生成的任何其他侦听器。话虽如此,如果你想从Eclipse中做到这一点,你可以简单地编辑上面提到的启动套件时创建的启动配置,并在参数框中添加“-usedefaultlisteners false”。

答案 2 :(得分:3)

要禁用defaultlisteners,

Goto Eclipse Project-> Properties -> TestNG -> Disable deafult listeners.

运行后,您将收到以下错误:

java.lang.NoClassDefFoundError: com/google/inject/Module 
        at java.lang.Class.getDeclaredMethods0(Native Method) 
        at java.lang.Class.privateGetDeclaredMethods(Unknown Source) 
        at java.lang.Class.privateGetPublicMethods(Unknown Source) 
        at java.lang.Class.getMethods(Unknown Source) 

要解决此问题,请下载google-guice-3.0.zip并将guice-3.0.jar粘贴到类路径中。

现在运行并检查工作区 / test-output / html中的报告。