From 096aa2c5a79d5182b8d85c0fd653f55597da41b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Hellander?= Date: Sun, 30 Aug 2026 07:06:25 +0200 Subject: [PATCH 1/4] Separate build and test in build.yml --- .github/workflows/build.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cd3b86ebc..1d8c57b6f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,8 +33,15 @@ jobs: - name: Restore tools run: dotnet tool restore - - name: Build & Test - run: dotnet dotnet-coverage collect "dotnet test --project StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp${{matrix.testversion}}/StyleCop.Analyzers.Test.CSharp${{matrix.testversion}}.csproj -c ${{matrix.configuration}} --verbosity normal" --output TestResults/coverage.cobertura.xml --output-format cobertura --settings CodeCoverage.config + # Build the test project rather than the whole solution: a solution build compiles + # StyleCop.Analyzers.CodeGeneration twice - once as a solution entry, and once via the + # SetTargetFramework project reference from StyleCop.Analyzers - and the two instances + # race over the same obj folder, failing with MSB3491. + - name: Build + run: dotnet build StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp${{matrix.testversion}}/StyleCop.Analyzers.Test.CSharp${{matrix.testversion}}.csproj -c ${{matrix.configuration}} + + - name: Test + run: dotnet dotnet-coverage collect "dotnet test --no-build --project StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp${{matrix.testversion}}/StyleCop.Analyzers.Test.CSharp${{matrix.testversion}}.csproj -c ${{matrix.configuration}}" --output TestResults/coverage.cobertura.xml --output-format cobertura --settings CodeCoverage.config - name: Upload coverage uses: codecov/codecov-action@e53489f4d376d79066609109e7a95a29eb3740b1 # v7.0.0 From 3250e1809812188aa471515985005c36deaefa5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Hellander?= Date: Sun, 30 Aug 2026 07:41:31 +0200 Subject: [PATCH 2/4] Update project files so 'dotnet build' works consistently --- .github/workflows/build.yml | 6 +----- .../StyleCop.Analyzers.Test.CSharp10.csproj | 2 +- .../StyleCop.Analyzers.Test.CSharp11.csproj | 2 +- .../StyleCop.Analyzers.Test.CSharp12.csproj | 2 +- .../StyleCop.Analyzers.Test.CSharp13.csproj | 2 +- .../StyleCop.Analyzers.Test.CSharp14.csproj | 2 +- .../StyleCop.Analyzers.Test.CSharp15.csproj | 2 +- .../StyleCop.Analyzers.Test.CSharp7.csproj | 2 +- .../StyleCop.Analyzers.Test.CSharp8.csproj | 2 +- .../StyleCop.Analyzers.Test.CSharp9.csproj | 2 +- .../StyleCop.Analyzers/StyleCop.Analyzers.csproj | 9 ++++++++- 11 files changed, 18 insertions(+), 15 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1d8c57b6f..f417dbe56 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,12 +33,8 @@ jobs: - name: Restore tools run: dotnet tool restore - # Build the test project rather than the whole solution: a solution build compiles - # StyleCop.Analyzers.CodeGeneration twice - once as a solution entry, and once via the - # SetTargetFramework project reference from StyleCop.Analyzers - and the two instances - # race over the same obj folder, failing with MSB3491. - name: Build - run: dotnet build StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp${{matrix.testversion}}/StyleCop.Analyzers.Test.CSharp${{matrix.testversion}}.csproj -c ${{matrix.configuration}} + run: dotnet build -c ${{matrix.configuration}} - name: Test run: dotnet dotnet-coverage collect "dotnet test --no-build --project StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp${{matrix.testversion}}/StyleCop.Analyzers.Test.CSharp${{matrix.testversion}}.csproj -c ${{matrix.configuration}}" --output TestResults/coverage.cobertura.xml --output-format cobertura --settings CodeCoverage.config diff --git a/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp10/StyleCop.Analyzers.Test.CSharp10.csproj b/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp10/StyleCop.Analyzers.Test.CSharp10.csproj index d372cf6c2..f77413c39 100644 --- a/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp10/StyleCop.Analyzers.Test.CSharp10.csproj +++ b/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp10/StyleCop.Analyzers.Test.CSharp10.csproj @@ -21,7 +21,7 @@ - + \ No newline at end of file diff --git a/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp11/StyleCop.Analyzers.Test.CSharp11.csproj b/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp11/StyleCop.Analyzers.Test.CSharp11.csproj index cdf67b667..f38042313 100644 --- a/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp11/StyleCop.Analyzers.Test.CSharp11.csproj +++ b/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp11/StyleCop.Analyzers.Test.CSharp11.csproj @@ -21,7 +21,7 @@ - + \ No newline at end of file diff --git a/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp12/StyleCop.Analyzers.Test.CSharp12.csproj b/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp12/StyleCop.Analyzers.Test.CSharp12.csproj index 68f64d3db..989eeee15 100644 --- a/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp12/StyleCop.Analyzers.Test.CSharp12.csproj +++ b/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp12/StyleCop.Analyzers.Test.CSharp12.csproj @@ -21,7 +21,7 @@ - + \ No newline at end of file diff --git a/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp13/StyleCop.Analyzers.Test.CSharp13.csproj b/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp13/StyleCop.Analyzers.Test.CSharp13.csproj index e7cec7484..3f814c893 100644 --- a/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp13/StyleCop.Analyzers.Test.CSharp13.csproj +++ b/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp13/StyleCop.Analyzers.Test.CSharp13.csproj @@ -21,7 +21,7 @@ - + \ No newline at end of file diff --git a/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp14/StyleCop.Analyzers.Test.CSharp14.csproj b/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp14/StyleCop.Analyzers.Test.CSharp14.csproj index eba6f0531..635624164 100644 --- a/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp14/StyleCop.Analyzers.Test.CSharp14.csproj +++ b/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp14/StyleCop.Analyzers.Test.CSharp14.csproj @@ -21,7 +21,7 @@ - + \ No newline at end of file diff --git a/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp15/StyleCop.Analyzers.Test.CSharp15.csproj b/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp15/StyleCop.Analyzers.Test.CSharp15.csproj index 007a1dc7e..4b0f60e93 100644 --- a/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp15/StyleCop.Analyzers.Test.CSharp15.csproj +++ b/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp15/StyleCop.Analyzers.Test.CSharp15.csproj @@ -21,7 +21,7 @@ - + \ No newline at end of file diff --git a/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp7/StyleCop.Analyzers.Test.CSharp7.csproj b/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp7/StyleCop.Analyzers.Test.CSharp7.csproj index cc47b8338..e28695e72 100644 --- a/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp7/StyleCop.Analyzers.Test.CSharp7.csproj +++ b/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp7/StyleCop.Analyzers.Test.CSharp7.csproj @@ -20,7 +20,7 @@ - + diff --git a/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp8/StyleCop.Analyzers.Test.CSharp8.csproj b/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp8/StyleCop.Analyzers.Test.CSharp8.csproj index f80e841ff..94e76f26d 100644 --- a/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp8/StyleCop.Analyzers.Test.CSharp8.csproj +++ b/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp8/StyleCop.Analyzers.Test.CSharp8.csproj @@ -21,7 +21,7 @@ - + \ No newline at end of file diff --git a/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp9/StyleCop.Analyzers.Test.CSharp9.csproj b/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp9/StyleCop.Analyzers.Test.CSharp9.csproj index d821d426a..a501967d0 100644 --- a/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp9/StyleCop.Analyzers.Test.CSharp9.csproj +++ b/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp9/StyleCop.Analyzers.Test.CSharp9.csproj @@ -21,7 +21,7 @@ - + \ No newline at end of file diff --git a/StyleCop.Analyzers/StyleCop.Analyzers/StyleCop.Analyzers.csproj b/StyleCop.Analyzers/StyleCop.Analyzers/StyleCop.Analyzers.csproj index 99edf1500..08712179b 100644 --- a/StyleCop.Analyzers/StyleCop.Analyzers/StyleCop.Analyzers.csproj +++ b/StyleCop.Analyzers/StyleCop.Analyzers/StyleCop.Analyzers.csproj @@ -33,9 +33,16 @@ + From 9884fbacb89cf3f7ad78ac358efd2b11395f2852 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Hellander?= Date: Sun, 30 Aug 2026 08:05:47 +0200 Subject: [PATCH 3/4] Remove unnecessary code in StyleCopCodeFixVerifier --- .../Verifiers/StyleCopCodeFixVerifier`2.cs | 26 ------------------- 1 file changed, 26 deletions(-) diff --git a/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp6/Verifiers/StyleCopCodeFixVerifier`2.cs b/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp6/Verifiers/StyleCopCodeFixVerifier`2.cs index 89e29afd9..d1d568d2a 100644 --- a/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp6/Verifiers/StyleCopCodeFixVerifier`2.cs +++ b/StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp6/Verifiers/StyleCopCodeFixVerifier`2.cs @@ -7,7 +7,6 @@ namespace StyleCop.Analyzers.Test.CSharp6.Verifiers using System.Collections.Generic; using System.IO; using System.Linq; - using System.Net; using System.Threading; using System.Threading.Tasks; using global::LightJson; @@ -103,16 +102,6 @@ internal class CSharpTest : CSharpCodeFixTest Date: Sun, 30 Aug 2026 08:15:56 +0200 Subject: [PATCH 4/4] Ignore generated files in code coverage --- CodeCoverage.config | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CodeCoverage.config b/CodeCoverage.config index f2f95456b..00b2305e6 100644 --- a/CodeCoverage.config +++ b/CodeCoverage.config @@ -9,5 +9,13 @@ .*\.Testing\.dll$ + + + + .*\\\.generated\\.* + +