提问人:nizery 提问时间:11/14/2023 最后编辑:nizery 更新时间:11/15/2023 访问量:57
如何在SonarQube服务器中上传通用测试执行报告?
how to upload generic test execution report in a sonarqube server?
问:
在一组微服务的应用程序复合体上,我使用 JMeter 来执行 API 测试和用户场景测试(请参阅此处)。
我想在 sonarqube 中管理这些测试状态和持续时间,并在 sonarqube 中上传这些测试结果。
生成通用测试执行报告很容易,格式非常简单。( 看这里 )
<testExecutions version="1">
<file path="testx/ClassOneTest.xoo">
<testCase name="test1" duration="5"/>
<testCase name="test2" duration="500">
<skipped/>
</testCase>
<testCase name="test3" duration="100">
<failure/>
</testCase>
<testCase name="test4" duration="500">
<error/>
</testCase>
</file>
</testExecutions>
但该文档解释说:“与覆盖率报告不同,报告中存在的文件必须是测试文件名,而不是测试所涵盖的源代码文件。
但是在通用测试执行报告的上下文中,什么是测试文件名?
JMX 文件不是 JUnit 文件,如果我将元素设置为 sonarqube 服务器会接受它作为测试文件名吗?<file path="jmx/api/scenario1.jmx">
Sonarqube 的版本是 sonarqube-10.2.1.78527。
声纳扫描仪的版本是 5.0.1 。
答:
简短的回答 - 在报告中引用 jmx 不起作用,但存在解决方法
现在,回答您的问题...
- 什么是测试文件名?
实际上,SonarQube 通过两个范围来区分文件 - 源和测试。任何位于“tests”范围内(由 sonar.tests 参数定义)的文件都被视为测试文件。在通用测试执行报告的上下文中,“测试文件名”的含义相同 - 它是在“测试”范围内定义的文件。查看更多关于示波器的故事
- SonarQube 服务器会接受它作为测试文件名吗?
引用文件的类型很重要。SonarQube 尝试检测文件语言,但对于“.jmx”(至少在 SonarQube CE 9.9 中)将无法这样做。因此,您的“jmx/api/scenario1.jmx”很可能会以错误“跳过文件”结束......,因为它没有已知语言,即使您将此文件定义为“测试”范围的一部分。一种可能的解决方法是将 .jmx 重命名为 .xml。这样语言检查就会通过。
评论