当前位置: 首页 > 知识库问答 >
问题:

如何从TestNG为所有测试用例获取一个junit报告?

宰修能
2023-03-14

我有一个这样格式化的TestNG xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="MySuite" parallel="tests" thread-count="5">
<parameter name="browser" value="firefox" />
<parameter name="remoteOrLocal" value="local" />
<parameter name="environment" value="####" />
<parameter name="remoteAddress" value="0.0.0.0" />
<test name="1" >
    <classes>
        <class name="tests.Test1"/>
    </classes>
</test>
<test name="2">
    <classes>
        <class name="tests.Test2"/>
    </classes>
</test>
<test name="3">
    <classes>
        <class name="tests.Test3"/>
    </classes>
</test>
</suite

问题是:在test-output下名为junitreports的目录中,每个类都有一个junit报告,格式如下:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated by org.testng.reporters.JUnitReportReporter -->
<testsuite hostname="fadavis-HP-EliteBook-8470p" name="tests.Test1" tests="3" failures="1" timestamp="15 May 2015 19:25:12 GMT" time="0.023" errors="1">
  <testcase name="method1" time="0.012" classname="tests.Test1"/>
  <testcase name="method3" time="0.004" classname="tests.Test1"/>
  <testcase name="method2" time="0.007" classname="tests.Test1">
    <error type="java.lang.AssertionError" message="null">
      <![CDATA[java.lang.AssertionError: null
    at org.testng.Assert.fail(Assert.java:94)
    at org.testng.Assert.fail(Assert.java:101)
    at tests.Test1.method2(Test1.java:13)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
    at org.testng.TestRunner.privateRun(TestRunner.java:767)
    at org.testng.TestRunner.run(TestRunner.java:617)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
    at org.testng.SuiteRunner.access$000(SuiteRunner.java:37)
    at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:368)
    at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
]]>
    </error>
  </testcase> <!-- method2 -->
</testsuite> <!-- tests.Test1 -->

其中套件名与类名相同。我如何只获得一个带有一组TestNG测试结果的Junit报告文件?

共有1个答案

汝跃
2023-03-14

应该有一个名为mysuite的目录,其级别与junitreports相同(基本上是从您的 )中命名的目录,其中包含一个用于所有测试的XML。

这是由org.testng.reporters.junitXmlReporter生成的,如果没有,请尝试将此reporter添加到您的侦听器中。

 类似资料:
  • 问题: TestNG正在运行所有172个测试,但是它只报告了81个测试运行,没有报告一些失败(实际上有两个测试失败,但只报告了一个)。 似乎未报告的测试是有什么方法可以让TestNG正确识别这些测试并正确报告它们的结果吗?

  • 我现在的Jenkins运行多个构建。每个构建/运行都将创建自己的testng-results.xml(target/surefire-reports/testng-results.xml) 我检查了Jenkins job主页上的HTML报告的结果(该报告只显示最新构建/运行的报告)。 不管怎样,为了得到这个?

  • 问题内容: 我将Specflow与NUnit和Selenium结合使用,并希望在所有测试中共享驱动程序实例。我可以使用FeatureContext达到功能级别,但是看不到所有测试的任何内容。我知道这可能不是正确的方法,但我想知道是否有办法。 请帮助提供示例。 谢谢 问题答案: 有几种方法可以做到这一点。此页面涵盖了大多数 我个人可能要做的是定义一个类,并在所有Step类的构造函数中都需要该类,然后

  • 我有一个junit测试testArchive()。Junit测试测试存档文件并将url作为字符串返回给它的archive()方法。URL被定义为Junit测试类中的实例变量。 我正在为sendEmail()编写另一个Junit测试,它通过电子邮件发送URL。但是URL被定义为一个类变量,结果却是空的 你能让我知道我需要如何修正我的Junit测试发送电子邮件吗? 谢谢你

  • 我使用Intelli J IDE构建一个包含所有依赖项和测试类的可执行JAR。 /src/main/java/META-INF/MANIFEST.MF是 清单版本:1.0主类:org.testng.testng 当我用命令运行jar时 java-jartahoe-test.jarorg.testng.TestNG套件/t123.xml 我得到一个错误: 错误:无效或损坏的jar文件tahoe-te

  • 我使用TestNG6.8+Selenium WebDriver2.32来测试web应用程序的GUI。在测试失败的情况下,我想拍摄应用程序GUI的截图。 我所拥有的: null null 您能否建议一种方法,如何获得在AbstractGuitTest中声明的WebDriver实例,以便我可以使用它在GuiTestListener类中进行截图?