Skip to content

refactor: remove core mutation tests only on main#768

Merged
vbreuss merged 1 commit intomainfrom
topic/remove-core-mutation-tests-on-main
Sep 7, 2025
Merged

refactor: remove core mutation tests only on main#768
vbreuss merged 1 commit intomainfrom
topic/remove-core-mutation-tests-on-main

Conversation

@vbreuss
Copy link
Copy Markdown
Member

@vbreuss vbreuss commented Sep 7, 2025

Improving on #766, this refactor modifies the mutation testing build process to conditionally exclude core mutation tests when building on the main branch. The change allows core mutation tests to run on all branches except main, while main library mutation tests continue to run on all branches.

Key changes:

  • Updated build logic to skip core mutation tests on the main branch
  • Added separate GitHub Actions workflow job for core mutation tests
  • Modified dashboard generation to handle projects conditionally based on branch

@vbreuss vbreuss self-assigned this Sep 7, 2025
Copilot AI review requested due to automatic review settings September 7, 2025 15:22
@vbreuss vbreuss added the refactor A change or improvement without functional impact label Sep 7, 2025
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This refactor modifies the mutation testing build process to conditionally exclude core mutation tests when building on the main branch. The change allows core mutation tests to run on all branches except main, while main library mutation tests continue to run on all branches.

  • Updated build logic to skip core mutation tests on the main branch
  • Added separate GitHub Actions workflow job for core mutation tests
  • Modified dashboard generation to handle projects conditionally based on branch

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
Pipeline/Build.MutationTests.cs Added branch condition to skip core mutation tests on main, updated dashboard logic to conditionally include projects
.github/workflows/build.yml Added dedicated mutation-tests-core job and updated dependencies

Comment thread Pipeline/Build.MutationTests.cs
Comment thread Pipeline/Build.MutationTests.cs
@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented Sep 7, 2025

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Sep 7, 2025

Test Results

    14 files   - 24      14 suites   - 24   4m 4s ⏱️ +5s
17 590 tests  - 27  17 588 ✅  - 27  2 💤 ±0  0 ❌ ±0 
49 434 runs   - 72  49 432 ✅  - 72  2 💤 ±0  0 ❌ ±0 

Results for commit eb8dd77. ± Comparison against base commit d1490b5.

This pull request removes 1569 and adds 1542 tests. Note that renamed tests count towards both.
aweXpect.Core.Tests.Core.Exceptions.FailExceptionTests ‑ Message_ShouldBeSet(message: "messagea159198a-6ef0-4722-beeb-d2e530ca2bac")
aweXpect.Core.Tests.Core.Exceptions.FailExceptionTests ‑ Message_ShouldBeSet(message: "messagea968835b-3069-477a-94f2-9902e8d2f8c4")
aweXpect.Core.Tests.Core.Exceptions.FailExceptionTests ‑ Message_ShouldBeSet(message: "messagef4ace33a-7d62-480e-89f4-a9a0d2254638")
aweXpect.Core.Tests.Core.Exceptions.SkipExceptionTests ‑ Message_ShouldBeSet(message: "message62802f42-e5c4-4853-b08c-c00d8274c8d8")
aweXpect.Core.Tests.Core.Exceptions.SkipExceptionTests ‑ Message_ShouldBeSet(message: "messagea09bb385-3ae0-47f6-8ef8-94d35ec5f4a6")
aweXpect.Core.Tests.Core.Exceptions.SkipExceptionTests ‑ Message_ShouldBeSet(message: "messageea59276a-d2df-4c22-8c88-f18d213fe674")
aweXpect.Core.Tests.FailTests ‑ Test_ShouldThrowException(reason: "reason4bb0c1ab-847c-4b73-97b4-5eb539187ef7")
aweXpect.Core.Tests.FailTests ‑ Test_ShouldThrowException(reason: "reason73bb5ab9-dd0b-4a1d-8c6e-6e05ecacc79d")
aweXpect.Core.Tests.FailTests ‑ Test_ShouldThrowException(reason: "reasonf1b79f29-1b39-49be-8853-1164bcd7fade")
aweXpect.Core.Tests.FailTests ‑ Unless_ShouldThrowException(condition: False, reason: "reason09f65021-c04b-4d73-b728-6fb4aa010479")
…
aweXpect.Core.Tests.Core.Exceptions.FailExceptionTests ‑ Message_ShouldBeSet(message: "message28fbc851-f1c1-4489-b6a5-7eb50c0739f3")
aweXpect.Core.Tests.Core.Exceptions.FailExceptionTests ‑ Message_ShouldBeSet(message: "message5e284dd2-d0f2-4845-835f-933a9593416b")
aweXpect.Core.Tests.Core.Exceptions.FailExceptionTests ‑ Message_ShouldBeSet(message: "message662d8b5f-f9d9-456f-bb53-367a2a8ae2fc")
aweXpect.Core.Tests.Core.Exceptions.SkipExceptionTests ‑ Message_ShouldBeSet(message: "message07f4c1c2-9be6-48a5-902d-f84c586dd48c")
aweXpect.Core.Tests.Core.Exceptions.SkipExceptionTests ‑ Message_ShouldBeSet(message: "message3b1c5711-8fb5-4c98-82d8-7446f5947bdd")
aweXpect.Core.Tests.Core.Exceptions.SkipExceptionTests ‑ Message_ShouldBeSet(message: "messagef5ccb31f-4f7b-4977-8711-a6b4e2189c65")
aweXpect.Core.Tests.FailTests ‑ Test_ShouldThrowException(reason: "reason0cf084cf-7011-4c9f-a8c3-09c61243e8b1")
aweXpect.Core.Tests.FailTests ‑ Test_ShouldThrowException(reason: "reason44b2bcae-be50-4eca-ba5c-7f2c16eae93d")
aweXpect.Core.Tests.FailTests ‑ Test_ShouldThrowException(reason: "reason6e25c8a5-1314-4cd3-8a5e-099f12ede300")
aweXpect.Core.Tests.FailTests ‑ Unless_ShouldThrowException(condition: False, reason: "reason84a0449f-b3a3-45a2-8376-65f51f89ee01")
…

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Sep 7, 2025

🚀 Benchmark Results

Details

BenchmarkDotNet v0.14.0, Ubuntu 24.04.3 LTS (Noble Numbat)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 8.0.413
[Host] : .NET 8.0.19 (8.0.1925.36514), X64 RyuJIT AVX2

Job=InProcess Toolchain=InProcessEmitToolchain IterationCount=15
LaunchCount=1 WarmupCount=10

Method Mean Error StdDev Gen0 Gen1 Allocated
Bool_aweXpect 215.6 ns 1.66 ns 1.47 ns 0.0300 - 504 B
Bool_FluentAssertions 246.0 ns 3.59 ns 3.19 ns 0.0567 - 952 B
Bool_TUnit 896.5 ns 5.21 ns 4.88 ns 0.1431 - 2408 B
Equivalency_aweXpect 310,775.8 ns 1,000.62 ns 935.98 ns 20.0195 0.9766 335556 B
Equivalency_FluentAssertions 2,258,416.9 ns 16,451.32 ns 14,583.67 ns 273.4375 46.8750 4584416 B
Equivalency_TUnit 688,605.4 ns 7,032.72 ns 6,578.41 ns 51.7578 2.9297 880545 B
Int_GreaterThan_aweXpect 254.2 ns 2.20 ns 2.06 ns 0.0486 - 816 B
Int_GreaterThan_FluentAssertions 250.5 ns 7.18 ns 6.36 ns 0.0730 - 1224 B
Int_GreaterThan_TUnit 1,230.7 ns 20.13 ns 18.83 ns 0.1774 - 2984 B
ItemsCount_AtLeast_aweXpect 515.1 ns 12.82 ns 11.99 ns 0.0868 - 1464 B
ItemsCount_AtLeast_FluentAssertions 497.7 ns 6.35 ns 5.94 ns 0.1192 - 2008 B
ItemsCount_AtLeast_TUnit 15,444.7 ns 271.36 ns 253.83 ns 1.6174 - 27480 B
String_aweXpect 450.2 ns 13.56 ns 12.69 ns 0.0734 - 1232 B
String_FluentAssertions 487.4 ns 6.70 ns 5.94 ns 0.1287 - 2168 B
String_TUnit 1,260.0 ns 16.37 ns 15.31 ns 0.1831 - 3072 B
StringArray_aweXpect 1,745.6 ns 11.14 ns 9.88 ns 0.1717 - 2888 B
StringArray_FluentAssertions 1,351.0 ns 19.89 ns 17.63 ns 0.2480 - 4152 B
StringArray_TUnit 3,389.7 ns 44.87 ns 39.77 ns 0.3128 - 5296 B
StringArrayInAnyOrder_aweXpect 2,222.0 ns 17.74 ns 16.59 ns 0.1831 - 3080 B
StringArrayInAnyOrder_FluentAssertions 154,177.0 ns 762.92 ns 676.31 ns 3.4180 - 63787 B
StringArrayInAnyOrder_TUnit 3,974.7 ns 45.57 ns 40.39 ns 0.3815 - 6488 B

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Sep 7, 2025

👽 Mutation Results

Mutation testing badge

aweXpect

Details
File Score Killed Survived Timeout No Coverage Ignored Compile Errors Total Detected Total Undetected Total Mutants

The final mutation score is NaN%

Coverage Thresholds: high:80 low:60 break:0

aweXpect.Core

Details
File Score Killed Survived Timeout No Coverage Ignored Compile Errors Total Detected Total Undetected Total Mutants

The final mutation score is NaN%

Coverage Thresholds: high:80 low:60 break:0

@vbreuss vbreuss merged commit 4a2b227 into main Sep 7, 2025
14 checks passed
@vbreuss vbreuss deleted the topic/remove-core-mutation-tests-on-main branch September 7, 2025 16:37
github-actions Bot added a commit that referenced this pull request Sep 7, 2025
github-actions Bot added a commit that referenced this pull request Sep 7, 2025
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Sep 9, 2025

This is addressed in release v2.23.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

refactor A change or improvement without functional impact state: released The issue is released

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants