Skip to content

Commit faf67fd

Browse files
committed
build: Add GitHubActionsTestLogger
1 parent 0831ee3 commit faf67fd

File tree

5 files changed

+17
-27
lines changed

5 files changed

+17
-27
lines changed

.nuke/build.schema.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
"enum": [
2727
"Clean",
2828
"Compile",
29-
"Cover",
3029
"Pack",
3130
"Prepare",
3231
"Publish",

Directory.Packages.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1616
</PackageVersion>
1717
<PackageVersion Include="FluentAssertions" Version="6.12.2" />
18+
<PackageVersion Include="GitHubActionsTestLogger" Version="2.4.1" />
1819
<PackageVersion Include="Microsoft.AspNetCore.Http" Version="2.2.2" />
1920
<PackageVersion Include="Microsoft.AspNetCore.TestHost" Version="9.0.0" />
2021
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />

build/Build.cs

Lines changed: 10 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using GlobExpressions;
22
using Nuke.Common;
33
using Nuke.Common.CI;
4+
using Nuke.Common.CI.GitHubActions;
45
using Nuke.Common.Git;
56
using Nuke.Common.IO;
67
using Nuke.Common.ProjectModel;
@@ -46,8 +47,6 @@ class Build : NukeBuild
4647
AbsolutePath ArtifactsDirectory => RootDirectory / "artifacts";
4748
AbsolutePath NugetDirectory => ArtifactsDirectory / "nuget";
4849
AbsolutePath TestResultDirectory => ArtifactsDirectory / "test-results";
49-
AbsolutePath CoverageResultDirectory => ArtifactsDirectory / "coverage";
50-
AbsolutePath CoverageReportDirectory => ArtifactsDirectory / "coverage-report";
5150

5251
IEnumerable<Project> TestProjects => Solution.GetAllProjects("*.Tests");
5352

@@ -95,28 +94,15 @@ class Build : NukeBuild
9594
.EnableNoBuild()
9695
.ResetVerbosity()
9796
.SetResultsDirectory(TestResultDirectory)
98-
.EnableCollectCoverage()
99-
.SetCoverletOutputFormat(CoverletOutputFormat.cobertura)
100-
.SetExcludeByFile("*.Generated.cs")
101-
.CombineWith(TestProjects, (_, v) => _
102-
.SetProjectFile(v)
103-
.SetLoggers($"trx;LogFileName={v.Name}.trx;FailureBodyFormat=Verbose")
104-
.SetCoverletOutput($"{CoverageResultDirectory}/{v.Name}.xml"))));
105-
106-
Target Cover => _ => _
107-
.DependsOn(Test)
108-
.Consumes(Test)
109-
.Produces(CoverageResultDirectory / "lcov.info")
110-
.Executes(() =>
111-
{
112-
ReportGenerator(_ => _
113-
.SetFramework("net5.0")
114-
.SetReports(CoverageResultDirectory / "*.xml")
115-
.SetTargetDirectory(CoverageReportDirectory)
116-
.SetReportTypes("lcov")
117-
.When(IsLocalBuild, _ => _
118-
.AddReportTypes(ReportTypes.HtmlInline)));
119-
});
97+
.CombineWith(TestProjects, (_, project) => _
98+
.SetProjectFile(project)
99+
.When(GitHubActions.Instance is not null && project.HasPackageReference("GitHubActionsTestLogger"),
100+
settings => settings.AddLoggers("GitHubActions;summary.includePassedTests=true;summary.includeSkippedTests=true")
101+
.AddRunSetting("RunConfiguration.CollectSourceInformation", "true"))
102+
.AddLoggers($"trx;LogFileName={project.Name}.trx;FailureBodyFormat=Verbose")
103+
.When(project.HasPackageReference("coverlet.collector"),
104+
settings => settings.SetDataCollector("XPlat Code Coverage")
105+
.SetSettingsFile("coverlet.runsettings")))));
120106

121107
Target Pack => _ => _
122108
.DependsOn(Clean, Restore)

coverlet.runsettings

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
<DataCollectors>
55
<DataCollector friendlyName="XPlat Code Coverage">
66
<Configuration>
7-
<Format>lcov</Format>
7+
<Format>opencover</Format>
88
<ExcludeByFile>**/GitVersionInformation.g.cs</ExcludeByFile>
99
<IncludeTestAssembly>false</IncludeTestAssembly>
10-
<UseSourceLink>false</UseSourceLink>
10+
<UseSourceLink>true</UseSourceLink>
1111
</Configuration>
1212
</DataCollector>
1313
</DataCollectors>

test/Timingz.Tests/Timingz.Tests.csproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@
1717
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1818
</PackageReference>
1919
<PackageReference Include="FluentAssertions" />
20+
<PackageReference Include="GitHubActionsTestLogger">
21+
<PrivateAssets>all</PrivateAssets>
22+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
23+
</PackageReference>
2024
<PackageReference Include="Microsoft.AspNetCore.TestHost" />
2125
<PackageReference Include="Microsoft.NET.Test.Sdk" />
2226
<PackageReference Include="xunit" />

0 commit comments

Comments
 (0)