Skip to content

Commit 97fa855

Browse files
heathsannelo-msft
authored andcommitted
Do not generate reports with no coverage (Azure#17293)
Fixes Azure#17286
1 parent e120d40 commit 97fa855

File tree

2 files changed

+23
-8
lines changed

2 files changed

+23
-8
lines changed

eng/CodeCoverage.targets

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,34 @@
2424
</ItemGroup>
2525

2626
<!-- Clean up previous TestResults so reports are recent. -->
27-
<Target Name="CleanPreviousCodeCoverage"
27+
<Target Name="_CleanPreviousCodeCoverage"
2828
BeforeTargets="VSTest"
2929
Condition="'$(_CollectCoverage)' == 'true'">
3030
<RemoveDir Directories="$(_TestResultsDirectory)" />
3131
</Target>
3232

33+
<!-- Set a variable to indicate that a report can be generated. -->
34+
<Target Name="_SetCoverageCollected"
35+
AfterTargets="VSTest"
36+
Condition="'$(_CollectCoverage)' == 'true'">
37+
<ItemGroup>
38+
<_CoverageFiles Include="$(_TestResultsDirectory)\**\coverage.cobertura.xml" />
39+
</ItemGroup>
40+
<PropertyGroup>
41+
<_CoverageCollected Condition="'@(_CoverageFiles)' != ''">true</_CoverageCollected>
42+
</PropertyGroup>
43+
44+
<!-- Indicate to the pipeline a report can be generated. -->
45+
<Message Importance="high"
46+
Condition="'$(_CoverageCollected)' == 'true' and '$(TF_BUILD)' == 'true'"
47+
Text="##vso[task.setvariable variable=coverage.collected]true" />
48+
</Target>
49+
3350
<!-- Should be similar to what's in the pipelines, though generate a full HTML report. -->
3451
<Target Name="GenerateCodeCoverageReport"
3552
AfterTargets="VSTest"
36-
Condition="'$(_CollectCoverage)' == 'true' and '$(SkipCoverageReport)' != 'true'">
53+
DependsOnTargets="_SetCoverageCollected"
54+
Condition="'$(_CollectCoverage)' == 'true' and '$(SkipCoverageReport)' != 'true' and '$(_CoverageCollected)' == 'true'">
3755
<PropertyGroup>
3856
<CoverageReportCommandLine>dotnet tool run reportgenerator --</CoverageReportCommandLine>
3957
<CoverageReportCommandLine>$(CoverageReportCommandLine) "-reports:$(_TestResultsDirectory)\**\coverage.cobertura.xml"</CoverageReportCommandLine>

eng/pipelines/templates/jobs/archetype-sdk-client.yml

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,6 @@ jobs:
110110
condition: and(succeededOrFailed(), ne(variables['Skip.Test'], true))
111111
variables:
112112
- template: ../variables/globals.yml
113-
- name: disable.coverage.autogenerate
114-
value: true
115113
strategy:
116114
maxParallel: $[ variables['MaxParallelTestJobs'] ]
117115
matrix:
@@ -167,18 +165,17 @@ jobs:
167165
testResultsFormat: "VSTest"
168166
mergeTestResults: true
169167
- task: Palmmedia.reportgenerator.reportgenerator-build-release-task.reportgenerator@4
170-
condition: and(succeededOrFailed(), eq(variables['CollectCoverage'], 'true'))
168+
condition: and(succeededOrFailed(), eq(variables['CollectCoverage'], 'true'), eq(variables['coverage.collected'], 'true'))
171169
displayName: Generate Code Coverage Reports
172170
inputs:
173171
reports: $(Build.SourcesDirectory)\sdk\${{parameters.ServiceDirectory}}\**\coverage.cobertura.xml
174172
targetdir: $(Build.ArtifactStagingDirectory)\coverage
175-
reporttypes: Cobertura;HtmlInline_AzurePipelines
173+
reporttypes: Cobertura
176174
filefilters: +$(Build.SourcesDirectory)\sdk\${{parameters.ServiceDirectory}}\**
177175
verbosity: Verbose
178176
- task: PublishCodeCoverageResults@1
179-
condition: and(succeededOrFailed(), eq(variables['CollectCoverage'], 'true'))
177+
condition: and(succeededOrFailed(), eq(variables['CollectCoverage'], 'true'), eq(variables['coverage.collected'], 'true'))
180178
displayName: Publish Code Coverage Reports
181179
inputs:
182180
codeCoverageTool: Cobertura
183181
summaryFileLocation: $(Build.ArtifactStagingDirectory)\coverage\Cobertura.xml
184-
reportDirectory: $(Build.ArtifactStagingDirectory)\coverage

0 commit comments

Comments
 (0)