Sonar云不反映具有Azure CICD管道的maven项目的代码覆盖率信息

vfh0ocws  于 12个月前  发布在  Maven
关注(0)|答案(1)|浏览(130)

我有一个Sping Boot 应用程序。我正在使用Azure CICD管道进行交付。我正在使用声纳云进行代码质量分析,并在管道中将其配置为一个步骤。当管道运行时,声纳云 Jmeter 板会随着漏洞更新,代码气味,等等.但是代码覆盖率总是显示为0%。在我的应用程序中有很多测试,不确定为什么它没有在声纳云中反射。我的管道看起来像这样(主要步骤):

steps:
  - install java step here

  - configure maven step here

  - task: SonarCloudPrepare@1
    inputs:
      SonarCloud: 'My Sonarcloud connection'
      organization: 'myOrganization'
      scannerMode: 'Other'
      extraProperties: |
        sonar.projectKey=myOrganization_JavaApp---API
        sonar.projectName=JavaApp - API

  - task: Maven@3
    displayName: 'Build Maven Artifacts'
    inputs:
      mavenPomFile: 'pom.xml'
      goals: 'package -Dactive.profile=$(active_profile)'
      publishJUnitResults: true
      testResultsFiles: '**/surefire-reports/TEST-*.xml'
      codeCoverageToolOption: 'JaCoCo'
      javaHomeOption: 'JDKVersion'
      mavenVersionOption: 'Default'
      mavenAuthenticateFeed: false
      effectivePomSkip: false
      sonarQubeRunAnalysis: true
      sqMavenPluginVersionChoice: 'latest'

  - task: SonarCloudPublish@1
    inputs:
      pollingTimeoutSec: '300'

  - task: CopyFiles@2
    displayName: 'Copy Artifacts to: $(build.artifactstagingdirectory)'
    inputs:
      SourceFolder: '$(system.defaultworkingdirectory)'
      Contents: '**/target/**/*.war'
      TargetFolder: '$(build.artifactstagingdirectory)'
    condition: succeededOrFailed()

  - task: PublishBuildArtifacts@1
    displayName: 'Publish Artifact to: drop'
    inputs:
      PathtoPublish: '$(build.artifactstagingdirectory)'
    condition: succeededOrFailed()

字符串
一旦管道运行,它会在CICD job. x1c 0d1x中显示所有代码覆盖率详细信息。然而,覆盖率不会反映在声纳云中。它总是0%。
1.我的管道配置有什么问题?
1.我需要在pom.xml中添加任何更改/配置才能使其工作吗?

mm9b1k5b

mm9b1k5b1#

在我这边测试,在SonarCloudPrepare@1任务中添加sonar.coverage.jacoco.xmlReportPaths=<path-to-xml-report>可以解决这个问题。
我的SonarCloudPrepare@1任务:

- task: SonarCloudPrepare@1
  displayName: 'Prepare analysis configuration'
  inputs:
    SonarCloud: 'SonarCloudSC'
    organization: '***sonarcloudorg'
    scannerMode: 'Other'
    extraProperties: |
      sonar.projectKey=***
      sonar.projectName=***
      sonar.coverage.jacoco.xmlReportPaths= CCReport43F6D5EF/jacoco.xml

字符串
然后我可以看到Sonar Cloud中的代码覆盖率:

相关问题