我正在尝试使用sonar.testExecutionReportPaths
导入通用测试执行。
我正在使用doc中提供的xml文件格式。
我在path属性中使用文件的完整路径。文件存在。
我不明白为什么我的文件会被忽略。有什么想法吗?
sonar.testExecutionReportPaths = "C:\Program Files (x86)\Jenkins\workspace\CI\Sonarqube.xml"
sonar.test.inclusions = "**\*Test*.cs"
以下是Sonar Runner的日志:
INFO: Sensor Generic Test Executions Report
INFO: Parsing C:\Program Files (x86)\Jenkins\workspace\CI\Sonarqube.xml
WARNING: WARN: Property 'sonar.genericcoverage.unitTestReportPaths' is deprecated. Please use 'sonar.testExecutionReportPaths' instead.
INFO: Imported test execution data for 0 files
INFO: Test execution data ignored for 5 unknown files, including:
C:\Program Files (x86)\Jenkins\workspace\CI\Tests\A-Test.cs
C:\Program Files (x86)\Jenkins\workspace\CI\Tests\B-Tests.cs
C:\Program Files (x86)\Jenkins\workspace\CI\Tests\C-Tests.cs
C:\Program Files (x86)\Jenkins\workspace\CI\Tests\D-Test.cs
C:\Program Files (x86)\Jenkins\workspace\CI\Tests\E-Test.cs
INFO: Sensor Generic Test Executions Report (done) | time=265ms
以下是Generic XMl文件的一部分:
<testExecutions version="1">
<file path="C:\Program Files (x86)\Jenkins\workspace\CI\Tests\A-Test.cs">
<testCase name="My A Test" duration="1210" />
</file>
<file path="C:\Program Files (x86)\Jenkins\workspace\CI\Tests\B-Tests.cs">
<testCase name="My B Test" duration="566" />
</file>
</testExecutions>
谢谢!
答案 0 :(得分:0)
我尝试使用 sonar.testExecutionReportPaths 导入通用测试执行。我使用上述问题中提到的xml文件格式。
但我的SonarQube没有使用以下日志信息导入报告:
INFO: Quality profile for js: Sonar way INFO: Sensor Generic Test Executions Report WARN: Property 'sonar.genericcoverage.unitTestReportPaths' is deprecated. Please use 'sonar.testExecutionReportPaths' instead. INFO: Parsing C:\Program Files (x86)\Jenkins\workspace\Venkata-test-master\JS_JUnit_Report\utut_report.xml INFO: Imported test execution data for 0 files INFO: Test execution data ignored for 36 unknown files, including: ..\my-bob\App\JsUnitTests\Tests\microsite\Utilities\persistBOBstate.test.js ..\my-bob\App\JsUnitTests\Tests\microsite\actions\action-get-delegation-data.test.js ..\my-bob\App\JsUnitTests\Tests\microsite\actions\action-loading-bar-process-completed.test.js ..\my-bob\App\JsUnitTests\Tests\microsite\actions\action-loading-bar-process-received.test.js ..\my-bob\App\JsUnitTests\Tests\microsite\actions\action-nb-since-date-selected.test.js
即使我添加了-Dsonar.test.inclusions = ** / * .test.js,但没有任何效果。
答案 1 :(得分:0)
它为我添加了什么:
sonar.testExecutionReportPaths=coverage/test-report.xml
sonar.tests=src
sonar.test.inclusions=**/*.spec.ts
到我的sonar-project.properties文件。 “ sonarqube-scanner-node”。
答案 2 :(得分:0)
基本上,如果要使声纳单元测试计数正确显示,则需要确认这些部分,这一定是错误之一
sonar.testExecutionReportPaths=xx/test-report.xml
添加到属性中,并确保路径正确。test-report.xml
file
字段和path
内容(file path="C:\Program Files (x86)\Jenkins\workspace\CI\Tests\A-Test.cs"
),确保路径与本地或服务器中的文件相同,例如,如果您在docker内部运行此代码,则需要检查docker容器中的A-Test.cs
文件路径,是否与xml文件中定义的路径相同。最后,我通过执行此检查解决了我的问题,希望它可以为您提供帮助。 标准文档here
中有一些技巧* The root node should be named testExecutions.
* Its version attribute should be set to 1.
* Insert a file element for each test file.
* Its path attribute can be either absolute or relative to the root of the module.
顺便说一句,您的声纳记录中有一个警告:
WARNING: WARN: Property 'sonar.genericcoverage.unitTestReportPaths' is deprecated. Please use 'sonar.testExecutionReportPaths' instead.
但是我可以看到您已经使用testExecutionReportPaths
,您可能需要检查声纳是否运行了最新版本的设置,并且package.json配置中的选项soanr56x
是否为假。