Skip to content

Commit 7db496c

Browse files
committed
code coverage
1 parent 8cdf804 commit 7db496c

File tree

7 files changed

+49
-1
lines changed

7 files changed

+49
-1
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,5 @@ obj/
88
*.received.*
99
nugets/
1010
*claude*
11+
*TestResults*
12+
coverage-report/

src/Delta.EFTests/Delta.EFTests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
<PackageReference Include="Verify.AspNetCore" />
1616
<PackageReference Include="NUnit3TestAdapter" />
1717
<PackageReference Include="Microsoft.NET.Test.Sdk" />
18+
<PackageReference Include="coverlet.collector" IncludeAssets="runtime; build; native; contentfiles; analyzers; buildtransitive" />
1819
<ProjectReference Include="..\Delta.EF\Delta.EF.csproj" />
1920
<PackageReference Include="ProjectDefaults" PrivateAssets="all" />
2021
<ProjectReference Include="..\Delta.SqlServer\Delta.SqlServer.csproj" />

src/DeltaTests/DeltaTests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<PackageReference Include="Verify.AspNetCore" />
1414
<PackageReference Include="NUnit3TestAdapter" />
1515
<PackageReference Include="Microsoft.NET.Test.Sdk" />
16+
<PackageReference Include="coverlet.collector" IncludeAssets="runtime; build; native; contentfiles; analyzers; buildtransitive" />
1617
<PackageReference Include="MarkdownSnippets.MsBuild" PrivateAssets="all" />
1718
<ProjectReference Include="..\Delta.SqlServer\Delta.SqlServer.csproj" />
1819
<ProjectReference Include="..\Delta\Delta.csproj" />

src/DeltaTests/PostgresTests.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
public class PostgresTests
44
{
55
[Test]
6+
#if DEBUG
7+
[Explicit]
8+
#endif
69
public async Task GetLastTimeStamp()
710
{
811
await using var connection = new NpgsqlConnection(PostgresConnection.ConnectionString);
@@ -21,4 +24,4 @@ public async Task GetLastTimeStamp()
2124
IsNotNull(timeStamp);
2225
IsNotEmpty(timeStamp);
2326
}
24-
}
27+
}

src/Directory.Packages.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
1717
<PackageVersion Include="NUnit" Version="4.4.0" />
1818
<PackageVersion Include="NUnit3TestAdapter" Version="5.2.0" Pinned="true" />
19+
<PackageVersion Include="coverlet.collector" Version="6.0.2" />
1920
<PackageVersion Include="ProjectDefaults" Version="1.0.170" />
2021
<PackageVersion Include="Verify.AspNetCore" Version="5.0.0" />
2122
<PackageVersion Include="Verify.DiffPlex" Version="3.1.2" />

src/coverage.runsettings

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
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,opencover</Format>
8+
<Exclude>[*.Tests]*,[*.Test]*</Exclude>
9+
<ExcludeByAttribute>Obsolete,GeneratedCodeAttribute,CompilerGeneratedAttribute</ExludeByAttribute>
10+
<IncludeTestAssembly>false</IncludeTestAssembly>
11+
<SkipAutoProps>true</SkipAutoProps>
12+
</Configuration>
13+
</DataCollector>
14+
</DataCollectors>
15+
</DataCollectionRunSettings>
16+
</RunSettings>

src/run-coverage.ps1

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# PowerShell script to run tests with coverage and generate HTML report
2+
3+
Write-Host "Running tests with code coverage..." -ForegroundColor Cyan
4+
dotnet test --collect:"XPlat Code Coverage" --settings coverage.runsettings
5+
6+
if ($LASTEXITCODE -ne 0) {
7+
Write-Host "Tests failed!" -ForegroundColor Red
8+
exit $LASTEXITCODE
9+
}
10+
11+
Write-Host "`nGenerating HTML coverage report..." -ForegroundColor Cyan
12+
reportgenerator -reports:"**/TestResults/**/coverage.cobertura.xml" -targetdir:"../coverage-report" -reporttypes:"Html;HtmlSummary"
13+
14+
if ($LASTEXITCODE -eq 0) {
15+
Write-Host "`nCoverage report generated successfully!" -ForegroundColor Green
16+
Write-Host "Open ..\coverage-report\index.html to view the report" -ForegroundColor Yellow
17+
18+
# Open the report in default browser
19+
Start-Process "..\coverage-report\index.html"
20+
}
21+
else {
22+
Write-Host "Failed to generate coverage report!" -ForegroundColor Red
23+
exit $LASTEXITCODE
24+
}

0 commit comments

Comments
 (0)