我正在配置MSBuild扫描程序以针对C#解决方案运行。我也通过dotCover运行代码覆盖,但它正在运行。从根本上说,问题是 - 1.通用测试执行报告解析器认为路径不正确2. SonarQube重复解析测试执行报告(这对我来说不那么重要)。
由于[2]中描述的错误,我正在从VSTest适配器生成TRX输出并将其转换为通用测试数据格式[4]。我正在使用我编写的XSLT进行转换(但很大程度上是基于TRX到我发现的JUnit XSLT),如果你很好奇,请参阅[3]。
我的解决方案结构类似于
<html><head>
</head><body>
<div class="parent">
<div class="child"></div>
<div class="child">Text1</div>
<div class="child"></div>
<div class="child">Text2</div>
</div>
</body></html>
这允许我运行一系列看起来像这样的命令:
(CWD from Jenkins' perspective) Source/
Source/my.Sln
Source/Proj1/Proj1.csproj
Source/Proj1.Tests/Proj1.Tests.csproj
我看到的具体错误是“为2个未知文件忽略测试执行数据,包括:”。无论路径是否绝对,都会发生这种情况。在这里,我看到每个项目的“convertedXml”文件都被解析,无论该文件是否属于正在进行后处理的项目。
我尝试了一些我在网上找到的东西,比如将我的“Source”目录重命名为其他东西。我担心我需要编写一个脚本,一次需要一个特定的csproj来解析,并且必须在我的解决方案中维护csproj的列表。理想情况下,这是可以避免的。
答案 0 :(得分:0)
如果您尝试将 trx 数据解析为通用测试数据以提供给 SonarCloud,您可以使用此 dotnet 工具:https://github.com/gmarokov/dotnet-trx2sonar
只需记住在传递报告路径时使用 sonar.testExecutionReportPaths
。