Skip to content

Commit c9d39e3

Browse files
committed
Fix code coverage collection with VSTest
1 parent 4d91515 commit c9d39e3

File tree

9 files changed

+51
-11
lines changed

9 files changed

+51
-11
lines changed

.github/workflows/test.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,14 @@ jobs:
3535
run: dotnet build -c Release --no-restore
3636
- name: Test & collect coverage
3737
run: |
38-
dotnet test -c Release --no-restore --no-build -- \
39-
--coverage --coverage-output-format xml --coverage-output ${{ github.workspace }}/coverage.xml
38+
dotnet test -c Release --no-restore --no-build \
39+
--settings tests/coverage.runsettings --results-directory ${{ github.workspace }}/test-results
4040
env:
4141
USE_MOCKING: ${{ vars.USE_MOCKING }}
4242
SHOW_MOCKING_LOGS: ${{ vars.SHOW_MOCKING_LOGS }}
4343
- name: Find coverage files and generate report
4444
run: |
45-
dotnet tool run reportgenerator -reports:"${{ github.workspace }}/**/coverage.xml" \
45+
dotnet tool run reportgenerator -reports:"${{ github.workspace }}/test-results/**/*cobertura.xml" \
4646
-targetdir:"coverage-report" \
4747
-reporttypes:MarkdownSummaryGithub
4848
- name: Upload coverage report

.gitignore

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,9 @@ bld/
2626
[Ll]ogs/
2727

2828
# Coverage
29-
[Cc]overagereport
30-
coverage.*.xml
29+
[Cc]overage-report
30+
*coverage.*.xml
31+
*cobertura.xml
3132

3233
# PDFs
3334
*.pdf

Directory.Build.props

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@
3232
</PackageReference>
3333
</ItemGroup>
3434
<ItemGroup Condition="$(MSBuildProjectName.EndsWith('Tests'))">
35+
<PackageReference Include="coverlet.collector">
36+
<PrivateAssets>all</PrivateAssets>
37+
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
38+
</PackageReference>
3539
<PackageReference Include="Microsoft.NET.Test.Sdk" />
3640
<PackageReference Include="Microsoft.Testing.Extensions.CodeCoverage" />
3741
<PackageReference Include="xunit.v3" />

coverage.ps1

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
1-
dotnet test -c Debug --no-restore --no-build -- --coverage --coverage-output-format xml --coverage-output coverage.xml
1+
dotnet build -c Release
2+
dotnet test -c Release --no-build --settings tests/coverage.runsettings --results-directory test-results
23

3-
$coverageFiles = Get-ChildItem -Path "tests" -Recurse -Filter "coverage.xml"
4+
$coverageFiles = Get-ChildItem -Path "test-results" -Recurse -Filter "*cobertura.xml"
45

56
if ($coverageFiles) {
67
$reportFiles = ($coverageFiles | ForEach-Object { $_.FullName }) -join ";"
7-
dotnet tool run reportgenerator -reports:$reportFiles -targetdir:coveragereport
8+
dotnet tool run reportgenerator -reports:$reportFiles -targetdir:coverage-report
89

9-
Start-Process "coveragereport/index.html"
10+
Start-Process "coverage-report/index.html"
1011
} else {
1112
Write-Host "Coverage reports not found."
1213
}
1314

14-
Get-ChildItem -Path "tests" -Recurse -Filter "TestResults" | ForEach-Object { Remove-Item -Recurse -Force -Path $_.FullName }
15+
Get-ChildItem -Path "test-results" -Recurse | ForEach-Object { Remove-Item -Recurse -Force -Path $_.FullName }

tests/ArchitectureTests/packages.lock.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22
"version": 2,
33
"dependencies": {
44
"net9.0": {
5+
"coverlet.collector": {
6+
"type": "Direct",
7+
"requested": "[6.0.4, )",
8+
"resolved": "6.0.4",
9+
"contentHash": "lkhqpF8Pu2Y7IiN7OntbsTtdbpR1syMsm2F3IgX6ootA4ffRqWL5jF7XipHuZQTdVuWG/gVAAcf8mjk8Tz0xPg=="
10+
},
511
"Microsoft.NET.Test.Sdk": {
612
"type": "Direct",
713
"requested": "[18.0.0, )",

tests/Directory.Packages.props

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
55
</PropertyGroup>
66
<ItemGroup>
7+
<PackageVersion Include="coverlet.collector" Version="6.0.4" />
78
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="9.0.9" />
89
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.0.0" />
910
<PackageVersion Include="Microsoft.Testing.Extensions.CodeCoverage" Version="18.0.4" />
@@ -15,4 +16,4 @@
1516
<PackageVersion Include="xunit.v3" Version="3.1.0" />
1617
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.5" />
1718
</ItemGroup>
18-
</Project>
19+
</Project>

tests/IntegrationTests/packages.lock.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22
"version": 2,
33
"dependencies": {
44
"net9.0": {
5+
"coverlet.collector": {
6+
"type": "Direct",
7+
"requested": "[6.0.4, )",
8+
"resolved": "6.0.4",
9+
"contentHash": "lkhqpF8Pu2Y7IiN7OntbsTtdbpR1syMsm2F3IgX6ootA4ffRqWL5jF7XipHuZQTdVuWG/gVAAcf8mjk8Tz0xPg=="
10+
},
511
"Microsoft.AspNetCore.Mvc.Testing": {
612
"type": "Direct",
713
"requested": "[9.0.9, )",

tests/UnitTests/packages.lock.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22
"version": 2,
33
"dependencies": {
44
"net9.0": {
5+
"coverlet.collector": {
6+
"type": "Direct",
7+
"requested": "[6.0.4, )",
8+
"resolved": "6.0.4",
9+
"contentHash": "lkhqpF8Pu2Y7IiN7OntbsTtdbpR1syMsm2F3IgX6ootA4ffRqWL5jF7XipHuZQTdVuWG/gVAAcf8mjk8Tz0xPg=="
10+
},
511
"Microsoft.NET.Test.Sdk": {
612
"type": "Direct",
713
"requested": "[18.0.0, )",

tests/coverage.runsettings

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<RunSettings>
3+
<DataCollectionRunSettings>
4+
<DataCollectors>
5+
<DataCollector friendlyName="XPlat Code Coverage">
6+
<Configuration>
7+
<Format>cobertura</Format>
8+
<Include>
9+
<ModulePath>.*[\\/]src[\\/].*\.dll$</ModulePath>
10+
</Include>
11+
</Configuration>
12+
</DataCollector>
13+
</DataCollectors>
14+
</DataCollectionRunSettings>
15+
</RunSettings>

0 commit comments

Comments
 (0)