Java 如何在JUnit XML报告上配置name和classname属性

Java 如何在JUnit XML报告上配置name和classname属性,java,junit,karate,Java,Junit,Karate,为了与外部测试管理解决方案集成并查看空手道结果,我需要使用JUnitXML报告导入它们。 JUnit的XML报告中标识的测试用例由元素上的name和classname属性标识。 然而,这些名称似乎是动态生成的,而不是作为明确标识原始测试用例的唯一标识符。 理想的情况是为相应的测试用例提供唯一的标识符,因此如果我们多次导入结果,它们总是与测试管理解决方案中的相同实体相关联 我已经试着运行了,并使用“mvn测试”运行了它。 这是生成的JUnitXML报告的示例 <testcase name

为了与外部测试管理解决方案集成并查看空手道结果,我需要使用JUnitXML报告导入它们。 JUnit的XML报告中标识的测试用例由元素上的name和classname属性标识。 然而,这些名称似乎是动态生成的,而不是作为明确标识原始测试用例的唯一标识符。 理想的情况是为相应的测试用例提供唯一的标识符,因此如果我们多次导入结果,它们总是与测试管理解决方案中的相同实体相关联

我已经试着运行了,并使用“mvn测试”运行了它。 这是生成的JUnitXML报告的示例

  <testcase name="testTags[1][1]" classname="karate.SampleTest" time="0.002"/>
  <testcase name="testSample[1][1]" classname="karate.SampleTest" time="0"/>
  <testcase name="testSample[1][2]" classname="karate.SampleTest" time="0"/>
  <testcase name="testFullPath[1][1]" classname="karate.SampleTest" time="0"/>
因此,像这样生成JUnitXML报告会更有用

  <testcase name="second" classname="karate.SampleTest" time="0.002"/>
  <testcase name="first hello world" classname="karate.SampleTest" time="0"/>
  <testcase name="second scenario" classname="karate.SampleTest" time="0"/>
  <testcase name=first" classname="karate.SampleTest" time="0"/>


非常确定您使用的是旧版本的空手道或其他东西(可能是JUnit本身)生成的XML。阅读此内容,您可能需要将您的报告解决方案指向其他文件夹,或排除某些非空手道创建的文件:

当然可能有机会提高空手道,所以我建议你这样做

打开一个新问题,并遵循以下过程:-然后指定要对今天生成的内容进行哪些更改


XML创建代码也在这个文件中,请查找
saveResultXml()
方法。

非常确定您使用的是旧版本的空手道或其他东西(可能是JUnit本身)生成了这个XML。阅读此内容,您可能需要将您的报告解决方案指向其他文件夹,或排除某些非空手道创建的文件:

当然可能有机会提高空手道,所以我建议你这样做

打开一个新问题,并遵循以下过程:-然后指定要对今天生成的内容进行哪些更改


XML创建代码也在这个文件中,请查找
saveResultXml()
方法。

您好,我使用了上游的最新版本。我转到karate-junit5文件夹,使用“mvn test”运行maven,它生成了一个名为“target/surefire reports/test karate.SampleTest.XML”的JUnit XML报告,其中包含我共享的内容。@user2850180,我相信你:)你现在知道该怎么做了,如上所述,此报告是由surefire本身生成的,还是由您之前善意共享的代码生成的?如果是后面的,那么我猜PR就是解决方案了吗?@ USER 2550180我不知道-这就是为什么你先在一个新的环境中尝试这个地方,然后考虑一个PR。我所看到的JUnit XML报告是由Maven SuffFi火本身生成的。它不是空手道创造的。从我在代码中看到的情况来看,如果我们使用并行运行程序,JUnit XML报告只能由空手道生成,对吗?因此,如果我从karate-junit5文件夹运行这个类中提到的测试,它不应该调用并行运行程序吗?似乎它不会调用它,除非我添加“Runner.parallel”嗨,我使用了上游的最新版本。我转到karate-junit5文件夹,使用“mvn test”运行maven,它生成了一个名为“target/surefire reports/test karate.SampleTest.XML”的JUnit XML报告,其中包含我共享的内容。@user2850180,我相信你:)你现在知道该怎么做了,如上所述,此报告是由surefire本身生成的,还是由您之前善意共享的代码生成的?如果是后面的,那么我猜PR就是解决方案了吗?@ USER 2550180我不知道-这就是为什么你先在一个新的环境中尝试这个地方,然后考虑一个PR。我所看到的JUnit XML报告是由Maven SuffFi火本身生成的。它不是空手道创造的。从我在代码中看到的情况来看,如果我们使用并行运行程序,JUnit XML报告只能由空手道生成,对吗?因此,如果我从karate-junit5文件夹运行这个类中提到的测试,它不应该调用并行运行程序吗?除非我加上“Runner.parallel”,否则它似乎不会叫它
  <testcase name="second" classname="karate.SampleTest" time="0.002"/>
  <testcase name="first hello world" classname="karate.SampleTest" time="0"/>
  <testcase name="second scenario" classname="karate.SampleTest" time="0"/>
  <testcase name=first" classname="karate.SampleTest" time="0"/>