我听说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中?
答案 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中的报告。