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

多个代码覆盖率报告已合并,已发布,显示Azure DevOps管道中没有数据

淳于慎之
2023-03-14

我在Azure运营模式中使用ReportGenerator任务将基于Cobertura的代码覆盖率报告合并为一个,最终在管道CodeCoverage选项卡中出现空报告。

以下是我的三份工作管道。

Job1 – 使用 Windows 代理池 1,生成 java-(干净编译、测试、cobertura:cobertura),如果生成成功,则将测试报告、代码覆盖率报告(仅限 xml)保存到 Azure 管道项目。

作业 2 – 使用 Windows 代理池 2,生成 .NET 核心(还原、测试、Cobertura 格式的封面报告),如果生成成功,则将测试报告、代码覆盖率报告(仅限 xml)保存到 Azure 管道项目。

Job3-使用Windows代理池3,下载从以前的作业上传的测试和多个覆盖率报告,使用ReportGenerator将所有Cobertura报告合并为一个。发布代码覆盖率报告。

但是,如果我去查看代码覆盖率报告选项卡管道、程序集、类、文件、包名称数据,但没有覆盖率数据,当我单击特定的包类名时,它是空的,并显示“/某些相对路径/abc.java”不存在(不再存在)”。请建议。

共有2个答案

支阳波
2023-03-14

同意丹尼尔的回答。如果使用 Microsoft 托管的代理,则每个作业都有不同的计算机,因此它们不会共享相同的生成源目录。

您可以尝试部署自承载代理并在管道中使用它,以便所有作业共享相同的生成源目录,然后无需再次签出它。

潘驰
2023-03-14

ReportGenerator需要源代码才能创建完整的报告。没有办法避免这种情况。

您需要复制源代码或在同一目录中再次查看。

 类似资料:
  • Jacoco插件在jenkins报告中显示0%的覆盖率,但当我在本地系统中运行相同的命令时,Jacoco会正确生成报告。我正在使用以下命令: mvn-s xyz/settings.xml-f xyz/xyz/pom.xml清洁安装org.jacoco 所以当我在jenkins中运行这个命令时,它会生成错误的报告。我已经检查了它在工作区目录对应的项目在詹金斯。它显示每个项目的0%覆盖率。但是当我在本

  • 当使用 生成覆盖率报告后,我的测试在代码覆盖率报告中显示为100%覆盖,如下所示 我尝试将测试移动到它自己的文件夹中,但仍然会得到相同的结果 实际的单元测试不应该出现在覆盖率报告中,并且扭曲了我的覆盖率。它应该只显示实际程序的覆盖范围。

  • 我正在使用Cobertura maven插件[2.7版]来了解测试的代码覆盖率。我正在使用PowerMock[1.6.6]模拟依赖对象。但是当我运行mvn cobertura:cobertura并检查报告时,覆盖率保持不变。当我不使用嘲弄的时候,它很好用。这是兼容性问题吗?我多次尝试mvn clean,只是为了确保报告是新生成的。 这是我的pom.xml 对此我们非常感谢您的帮助。

  • 我正在努力为SonarQube在Azure运营模式管道中生成代码覆盖率报告。我需要此代码覆盖率报告,以便SonarQube了解单元测试中覆盖的总代码。 我在获取单元测试期间创建的报告的步骤中收到此错误消息: 我在Azure Pipeline中生成报告所遵循的步骤: 1-在“dotnet构建”步骤之后,我包含了一个带有以下参数的“dotnettest”: 2-在“dotnet测试”之后,第一步包括一

  • 我正在使用Sonarqube分析我的Nestjs项目。当我用jest运行单元测试时,它们都通过了,代码覆盖率约为80%。在Sonarqube上,它仍然显示为0%。 我的sonar-project.properties文件如下 我的jest.json如下 我package.json的相关部分 我的源代码和它们各自的单元测试在同一个位置。测试文件有扩展名。spec.ts 在本地运行测试时,所有测试都通

  • 我有一个Android应用程序,它由两个模块组成: 注意:我使用的是Gradle版本3.1.2。 我尝试了几种方法,下面这个确实合并了测试…但是报道并不正确: //UI测试覆盖率过滤(我们需要运行应用程序的单元测试,以便能够使用Jacoco进行过滤) //单元测试覆盖过滤 任务createTestReport(类型:JacocoReport,Dependson:['test UnitteStuni