From f8357bad8ea96697504909624b34a1b723272ace Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Sun, 14 Sep 2025 21:31:50 +0200 Subject: [PATCH 01/25] :heavy_plus_sign: added support for net10.0 :heavy_minus_sign: remove support for net8.0 TFM :arrow_up: bump dependencies --- .github/workflows/pipelines.yml | 6 ++++++ Directory.Build.props | 11 ++++++----- Directory.Packages.props | 34 ++++++++++++++++----------------- testenvironments.json | 2 +- 4 files changed, 29 insertions(+), 24 deletions(-) diff --git a/.github/workflows/pipelines.yml b/.github/workflows/pipelines.yml index 6ecdd70..1f9ea24 100644 --- a/.github/workflows/pipelines.yml +++ b/.github/workflows/pipelines.yml @@ -31,6 +31,7 @@ jobs: with: configuration: ${{ matrix.configuration }} strong-name-key-filename: xunit.snk + include-preview: true secrets: GCP_TOKEN: ${{ secrets.GCP_TOKEN }} GCP_BUCKETNAME: ${{ secrets.GCP_BUCKETNAME }} @@ -45,6 +46,7 @@ jobs: with: configuration: ${{ matrix.configuration }} version: ${{ needs.build.outputs.version }} + include-preview: true test: name: call-test @@ -60,6 +62,7 @@ jobs: runs-on: ${{ matrix.os }} build-switches: -p:SkipSignAssembly=true restore: true # we need to restore the packages for the test project + include-preview: true sonarcloud: name: call-sonarcloud @@ -69,6 +72,7 @@ jobs: organization: geekle projectKey: xunit version: ${{ needs.build.outputs.version }} + include-preview: true secrets: inherit codecov: @@ -83,6 +87,8 @@ jobs: name: call-codeql needs: [build,test] uses: codebeltnet/jobs-codeql/.github/workflows/default.yml@v2 + with: + include-preview: true permissions: security-events: write diff --git a/Directory.Build.props b/Directory.Build.props index 5be2bb7..1e74516 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -15,7 +15,7 @@ - net9.0;net8.0;netstandard2.0 + net10.0;net9.0;netstandard2.0 Copyright © Geekle 2024-2025. All rights reserved. gimlichael Geekle @@ -51,11 +51,11 @@ - net9.0;net8.0 + net10.0;net9.0 - net9.0;net8.0;net48 + net10.0;net9.0;net48 @@ -68,12 +68,13 @@ none NU1701,NU1903,NETSDK1206 false + Exe - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/Directory.Packages.props b/Directory.Packages.props index bda83eb..e69b09c 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -4,24 +4,22 @@ true - - - - + + + + - + - - - - - + + + + - @@ -31,12 +29,12 @@ - - - - - - - + + + + + + + \ No newline at end of file diff --git a/testenvironments.json b/testenvironments.json index 8253208..8f2eaf9 100644 --- a/testenvironments.json +++ b/testenvironments.json @@ -9,7 +9,7 @@ { "name": "Docker-Ubuntu", "type": "docker", - "dockerImage": "gimlichael/ubuntu-testrunner:net8.0.414-9.0.305" + "dockerImage": "gimlichael/ubuntu-testrunner:net9.0.305-10.0.100-rc.1" } ] } From feef01124d361af621f72de7118bd8c2b78467f5 Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Sun, 14 Sep 2025 21:47:01 +0200 Subject: [PATCH 02/25] :arrow_up: consequence changes of xUnit v3 --- .../Codebelt.Extensions.Xunit.App.csproj | 2 +- .../Codebelt.Extensions.Xunit.Hosting.AspNetCore.csproj | 2 +- .../MinimalWebHostTest.cs | 1 - .../WebHostTest.cs | 2 +- src/Codebelt.Extensions.Xunit.Hosting/HostTest.cs | 1 - src/Codebelt.Extensions.Xunit.Hosting/MinimalHostTest.cs | 1 - .../ServiceCollectionExtensions.cs | 2 +- src/Codebelt.Extensions.Xunit.Hosting/XunitTestLogger.cs | 2 +- .../XunitTestLoggerProvider.cs | 2 +- .../Codebelt.Extensions.Xunit.csproj | 5 ++--- src/Codebelt.Extensions.Xunit/ITestOutputHelperAccessor.cs | 2 +- src/Codebelt.Extensions.Xunit/TestOutputHelperAccessor.cs | 2 +- .../TestOutputHelperExtensions.cs | 2 +- ...debelt.Extensions.Xunit.Hosting.AspNetCore.Tests.csproj | 2 +- .../ManagedWebHostFixtureTest.cs | 1 - .../MinimalMvcWebHostTestTest.cs | 1 - .../MinimalWebHostTestFactoryTest.cs | 1 - .../MinimalWebHostTestTest.cs | 1 - .../MvcWebHostTestTest.cs | 1 - .../ServiceCollectionExtensionsTest.cs | 1 - .../WebHostTestFactoryTest.cs | 1 - .../WebHostTestTest.cs | 1 - .../Assets/MinimalValidHostTest.cs | 1 - .../Assets/ValidHostTest.cs | 5 ++--- .../Codebelt.Extensions.Xunit.Hosting.Tests.csproj | 2 +- .../HostTestFactoryTest.cs | 1 - .../HostTestTest.cs | 5 ++--- .../ManagedHostFixtureTest.cs | 1 - .../MinimalHostFixtureTest.cs | 1 - .../MinimalHostTestFactoryTest.cs | 1 - .../MinimalHostTestTest.cs | 5 ++--- .../ServiceCollectionExtensions.cs | 1 - test/Codebelt.Extensions.Xunit.Tests/DisposableTest.cs | 1 - .../StringExtensionsTest.cs | 1 - test/Codebelt.Extensions.Xunit.Tests/TestTest.cs | 7 +++---- 35 files changed, 22 insertions(+), 46 deletions(-) diff --git a/src/Codebelt.Extensions.Xunit.App/Codebelt.Extensions.Xunit.App.csproj b/src/Codebelt.Extensions.Xunit.App/Codebelt.Extensions.Xunit.App.csproj index ffdf4ed..0cffd8e 100644 --- a/src/Codebelt.Extensions.Xunit.App/Codebelt.Extensions.Xunit.App.csproj +++ b/src/Codebelt.Extensions.Xunit.App/Codebelt.Extensions.Xunit.App.csproj @@ -1,7 +1,7 @@  - net9.0;net8.0 + net10.0;net9.0 250bdf91-e7c7-4cb4-a39d-e1a5374c5602 diff --git a/src/Codebelt.Extensions.Xunit.Hosting.AspNetCore/Codebelt.Extensions.Xunit.Hosting.AspNetCore.csproj b/src/Codebelt.Extensions.Xunit.Hosting.AspNetCore/Codebelt.Extensions.Xunit.Hosting.AspNetCore.csproj index 4ca2479..3d0dd7c 100644 --- a/src/Codebelt.Extensions.Xunit.Hosting.AspNetCore/Codebelt.Extensions.Xunit.Hosting.AspNetCore.csproj +++ b/src/Codebelt.Extensions.Xunit.Hosting.AspNetCore/Codebelt.Extensions.Xunit.Hosting.AspNetCore.csproj @@ -1,7 +1,7 @@  - net9.0;net8.0 + net10.0;net9.0 200bdf91-e7c7-4cb4-a39d-e1a5374c5602 false diff --git a/src/Codebelt.Extensions.Xunit.Hosting.AspNetCore/MinimalWebHostTest.cs b/src/Codebelt.Extensions.Xunit.Hosting.AspNetCore/MinimalWebHostTest.cs index 7619643..49474c7 100644 --- a/src/Codebelt.Extensions.Xunit.Hosting.AspNetCore/MinimalWebHostTest.cs +++ b/src/Codebelt.Extensions.Xunit.Hosting.AspNetCore/MinimalWebHostTest.cs @@ -2,7 +2,6 @@ using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.Hosting; using Xunit; -using Xunit.Abstractions; namespace Codebelt.Extensions.Xunit.Hosting.AspNetCore { diff --git a/src/Codebelt.Extensions.Xunit.Hosting.AspNetCore/WebHostTest.cs b/src/Codebelt.Extensions.Xunit.Hosting.AspNetCore/WebHostTest.cs index c5e2a1a..b7b6b99 100644 --- a/src/Codebelt.Extensions.Xunit.Hosting.AspNetCore/WebHostTest.cs +++ b/src/Codebelt.Extensions.Xunit.Hosting.AspNetCore/WebHostTest.cs @@ -1,7 +1,7 @@ using System; using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.Hosting; -using Xunit.Abstractions; +using Xunit; namespace Codebelt.Extensions.Xunit.Hosting.AspNetCore { diff --git a/src/Codebelt.Extensions.Xunit.Hosting/HostTest.cs b/src/Codebelt.Extensions.Xunit.Hosting/HostTest.cs index 2fcb209..3e2cf9f 100644 --- a/src/Codebelt.Extensions.Xunit.Hosting/HostTest.cs +++ b/src/Codebelt.Extensions.Xunit.Hosting/HostTest.cs @@ -3,7 +3,6 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Xunit; -using Xunit.Abstractions; namespace Codebelt.Extensions.Xunit.Hosting { diff --git a/src/Codebelt.Extensions.Xunit.Hosting/MinimalHostTest.cs b/src/Codebelt.Extensions.Xunit.Hosting/MinimalHostTest.cs index 2eea7f9..bc76807 100644 --- a/src/Codebelt.Extensions.Xunit.Hosting/MinimalHostTest.cs +++ b/src/Codebelt.Extensions.Xunit.Hosting/MinimalHostTest.cs @@ -1,7 +1,6 @@ using System; using Microsoft.Extensions.Hosting; using Xunit; -using Xunit.Abstractions; namespace Codebelt.Extensions.Xunit.Hosting { diff --git a/src/Codebelt.Extensions.Xunit.Hosting/ServiceCollectionExtensions.cs b/src/Codebelt.Extensions.Xunit.Hosting/ServiceCollectionExtensions.cs index ab42927..727897c 100644 --- a/src/Codebelt.Extensions.Xunit.Hosting/ServiceCollectionExtensions.cs +++ b/src/Codebelt.Extensions.Xunit.Hosting/ServiceCollectionExtensions.cs @@ -2,7 +2,7 @@ using System.Linq; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; -using Xunit.Abstractions; +using Xunit; namespace Codebelt.Extensions.Xunit.Hosting { diff --git a/src/Codebelt.Extensions.Xunit.Hosting/XunitTestLogger.cs b/src/Codebelt.Extensions.Xunit.Hosting/XunitTestLogger.cs index efa5aab..5ea6aa2 100644 --- a/src/Codebelt.Extensions.Xunit.Hosting/XunitTestLogger.cs +++ b/src/Codebelt.Extensions.Xunit.Hosting/XunitTestLogger.cs @@ -1,7 +1,7 @@ using System; using System.Text; using Microsoft.Extensions.Logging; -using Xunit.Abstractions; +using Xunit; namespace Codebelt.Extensions.Xunit.Hosting { diff --git a/src/Codebelt.Extensions.Xunit.Hosting/XunitTestLoggerProvider.cs b/src/Codebelt.Extensions.Xunit.Hosting/XunitTestLoggerProvider.cs index 00a52a1..41e7849 100644 --- a/src/Codebelt.Extensions.Xunit.Hosting/XunitTestLoggerProvider.cs +++ b/src/Codebelt.Extensions.Xunit.Hosting/XunitTestLoggerProvider.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Concurrent; using System.Collections.Generic; -using Xunit.Abstractions; +using Xunit; namespace Codebelt.Extensions.Xunit.Hosting { diff --git a/src/Codebelt.Extensions.Xunit/Codebelt.Extensions.Xunit.csproj b/src/Codebelt.Extensions.Xunit/Codebelt.Extensions.Xunit.csproj index 6247b5f..f89e32f 100644 --- a/src/Codebelt.Extensions.Xunit/Codebelt.Extensions.Xunit.csproj +++ b/src/Codebelt.Extensions.Xunit/Codebelt.Extensions.Xunit.csproj @@ -11,9 +11,8 @@ - - - + + diff --git a/src/Codebelt.Extensions.Xunit/ITestOutputHelperAccessor.cs b/src/Codebelt.Extensions.Xunit/ITestOutputHelperAccessor.cs index 0b1f5a8..71aff75 100644 --- a/src/Codebelt.Extensions.Xunit/ITestOutputHelperAccessor.cs +++ b/src/Codebelt.Extensions.Xunit/ITestOutputHelperAccessor.cs @@ -1,4 +1,4 @@ -using Xunit.Abstractions; +using Xunit; namespace Codebelt.Extensions.Xunit { diff --git a/src/Codebelt.Extensions.Xunit/TestOutputHelperAccessor.cs b/src/Codebelt.Extensions.Xunit/TestOutputHelperAccessor.cs index d3fa04b..6cef970 100644 --- a/src/Codebelt.Extensions.Xunit/TestOutputHelperAccessor.cs +++ b/src/Codebelt.Extensions.Xunit/TestOutputHelperAccessor.cs @@ -1,5 +1,5 @@ using System.Threading; -using Xunit.Abstractions; +using Xunit; namespace Codebelt.Extensions.Xunit { diff --git a/src/Codebelt.Extensions.Xunit/TestOutputHelperExtensions.cs b/src/Codebelt.Extensions.Xunit/TestOutputHelperExtensions.cs index fdb91a2..14db4f7 100644 --- a/src/Codebelt.Extensions.Xunit/TestOutputHelperExtensions.cs +++ b/src/Codebelt.Extensions.Xunit/TestOutputHelperExtensions.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; -using Xunit.Abstractions; +using Xunit; namespace Codebelt.Extensions.Xunit { diff --git a/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests.csproj b/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests.csproj index 42fd33c..ff5a065 100644 --- a/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests.csproj +++ b/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests.csproj @@ -1,7 +1,7 @@  - net9.0;net8.0 + net10.0;net9.0 Codebelt.Extensions.Xunit.Hosting.AspNetCore diff --git a/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/ManagedWebHostFixtureTest.cs b/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/ManagedWebHostFixtureTest.cs index 3cfd8ce..1a097f0 100644 --- a/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/ManagedWebHostFixtureTest.cs +++ b/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/ManagedWebHostFixtureTest.cs @@ -2,7 +2,6 @@ using Codebelt.Extensions.Xunit.Hosting.AspNetCore.Assets; using Microsoft.AspNetCore.Builder; using Xunit; -using Xunit.Abstractions; namespace Codebelt.Extensions.Xunit.Hosting.AspNetCore { diff --git a/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/MinimalMvcWebHostTestTest.cs b/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/MinimalMvcWebHostTestTest.cs index da70668..a74192b 100644 --- a/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/MinimalMvcWebHostTestTest.cs +++ b/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/MinimalMvcWebHostTestTest.cs @@ -7,7 +7,6 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Xunit; -using Xunit.Abstractions; namespace Codebelt.Extensions.Xunit.Hosting.AspNetCore { diff --git a/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/MinimalWebHostTestFactoryTest.cs b/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/MinimalWebHostTestFactoryTest.cs index 3a0f7fc..44ed8a3 100644 --- a/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/MinimalWebHostTestFactoryTest.cs +++ b/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/MinimalWebHostTestFactoryTest.cs @@ -11,7 +11,6 @@ using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection; using Xunit; -using Xunit.Abstractions; namespace Codebelt.Extensions.Xunit.Hosting.AspNetCore { diff --git a/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/MinimalWebHostTestTest.cs b/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/MinimalWebHostTestTest.cs index bf9159a..cb2b0b9 100644 --- a/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/MinimalWebHostTestTest.cs +++ b/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/MinimalWebHostTestTest.cs @@ -11,7 +11,6 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Xunit; -using Xunit.Abstractions; namespace Codebelt.Extensions.Xunit.Hosting.AspNetCore { diff --git a/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/MvcWebHostTestTest.cs b/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/MvcWebHostTestTest.cs index 7767bb9..363ccb0 100644 --- a/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/MvcWebHostTestTest.cs +++ b/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/MvcWebHostTestTest.cs @@ -6,7 +6,6 @@ using Microsoft.AspNetCore.TestHost; using Microsoft.Extensions.DependencyInjection; using Xunit; -using Xunit.Abstractions; namespace Codebelt.Extensions.Xunit.Hosting.AspNetCore { diff --git a/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/ServiceCollectionExtensionsTest.cs b/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/ServiceCollectionExtensionsTest.cs index dfb1996..3871c2a 100644 --- a/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/ServiceCollectionExtensionsTest.cs +++ b/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/ServiceCollectionExtensionsTest.cs @@ -3,7 +3,6 @@ using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection; using Xunit; -using Xunit.Abstractions; namespace Codebelt.Extensions.Xunit.Hosting.AspNetCore { diff --git a/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/WebHostTestFactoryTest.cs b/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/WebHostTestFactoryTest.cs index cd22af3..a774341 100644 --- a/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/WebHostTestFactoryTest.cs +++ b/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/WebHostTestFactoryTest.cs @@ -13,7 +13,6 @@ using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Xunit; -using Xunit.Abstractions; namespace Codebelt.Extensions.Xunit.Hosting.AspNetCore { diff --git a/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/WebHostTestTest.cs b/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/WebHostTestTest.cs index 864f876..431aacd 100644 --- a/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/WebHostTestTest.cs +++ b/test/Codebelt.Extensions.Xunit.Hosting.AspNetCore.Tests/WebHostTestTest.cs @@ -10,7 +10,6 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Xunit; -using Xunit.Abstractions; namespace Codebelt.Extensions.Xunit.Hosting.AspNetCore { diff --git a/test/Codebelt.Extensions.Xunit.Hosting.Tests/Assets/MinimalValidHostTest.cs b/test/Codebelt.Extensions.Xunit.Hosting.Tests/Assets/MinimalValidHostTest.cs index c28f88b..74e693a 100644 --- a/test/Codebelt.Extensions.Xunit.Hosting.Tests/Assets/MinimalValidHostTest.cs +++ b/test/Codebelt.Extensions.Xunit.Hosting.Tests/Assets/MinimalValidHostTest.cs @@ -1,6 +1,5 @@ using System; using Microsoft.Extensions.DependencyInjection; -using Xunit.Abstractions; namespace Codebelt.Extensions.Xunit.Hosting.Assets { diff --git a/test/Codebelt.Extensions.Xunit.Hosting.Tests/Assets/ValidHostTest.cs b/test/Codebelt.Extensions.Xunit.Hosting.Tests/Assets/ValidHostTest.cs index 29d398c..f683f78 100644 --- a/test/Codebelt.Extensions.Xunit.Hosting.Tests/Assets/ValidHostTest.cs +++ b/test/Codebelt.Extensions.Xunit.Hosting.Tests/Assets/ValidHostTest.cs @@ -1,6 +1,5 @@ -using System; -using Microsoft.Extensions.DependencyInjection; -using Xunit.Abstractions; +using Microsoft.Extensions.DependencyInjection; +using System; using static System.Net.Mime.MediaTypeNames; namespace Codebelt.Extensions.Xunit.Hosting.Assets diff --git a/test/Codebelt.Extensions.Xunit.Hosting.Tests/Codebelt.Extensions.Xunit.Hosting.Tests.csproj b/test/Codebelt.Extensions.Xunit.Hosting.Tests/Codebelt.Extensions.Xunit.Hosting.Tests.csproj index 4a6c8f9..b66b6c1 100644 --- a/test/Codebelt.Extensions.Xunit.Hosting.Tests/Codebelt.Extensions.Xunit.Hosting.Tests.csproj +++ b/test/Codebelt.Extensions.Xunit.Hosting.Tests/Codebelt.Extensions.Xunit.Hosting.Tests.csproj @@ -16,7 +16,7 @@ - + diff --git a/test/Codebelt.Extensions.Xunit.Hosting.Tests/HostTestFactoryTest.cs b/test/Codebelt.Extensions.Xunit.Hosting.Tests/HostTestFactoryTest.cs index 37fdb68..1a68f38 100644 --- a/test/Codebelt.Extensions.Xunit.Hosting.Tests/HostTestFactoryTest.cs +++ b/test/Codebelt.Extensions.Xunit.Hosting.Tests/HostTestFactoryTest.cs @@ -1,6 +1,5 @@ using System; using Xunit; -using Xunit.Abstractions; namespace Codebelt.Extensions.Xunit.Hosting { diff --git a/test/Codebelt.Extensions.Xunit.Hosting.Tests/HostTestTest.cs b/test/Codebelt.Extensions.Xunit.Hosting.Tests/HostTestTest.cs index a31fff1..bb41732 100644 --- a/test/Codebelt.Extensions.Xunit.Hosting.Tests/HostTestTest.cs +++ b/test/Codebelt.Extensions.Xunit.Hosting.Tests/HostTestTest.cs @@ -7,12 +7,11 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Xunit; -using Xunit.Abstractions; -using Xunit.Priority; +using Xunit.v3.Priority; namespace Codebelt.Extensions.Xunit.Hosting { - [TestCaseOrderer(PriorityOrderer.Name, PriorityOrderer.Assembly)] + [TestCaseOrderer(typeof(PriorityOrderer))] public class HostTestTest : HostTest { private bool _isHostRunning = false; diff --git a/test/Codebelt.Extensions.Xunit.Hosting.Tests/ManagedHostFixtureTest.cs b/test/Codebelt.Extensions.Xunit.Hosting.Tests/ManagedHostFixtureTest.cs index fe94927..ce0cb58 100644 --- a/test/Codebelt.Extensions.Xunit.Hosting.Tests/ManagedHostFixtureTest.cs +++ b/test/Codebelt.Extensions.Xunit.Hosting.Tests/ManagedHostFixtureTest.cs @@ -5,7 +5,6 @@ using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Xunit; -using Xunit.Abstractions; namespace Codebelt.Extensions.Xunit.Hosting { diff --git a/test/Codebelt.Extensions.Xunit.Hosting.Tests/MinimalHostFixtureTest.cs b/test/Codebelt.Extensions.Xunit.Hosting.Tests/MinimalHostFixtureTest.cs index f9c223c..b9e446b 100644 --- a/test/Codebelt.Extensions.Xunit.Hosting.Tests/MinimalHostFixtureTest.cs +++ b/test/Codebelt.Extensions.Xunit.Hosting.Tests/MinimalHostFixtureTest.cs @@ -2,7 +2,6 @@ using System.Threading.Tasks; using Codebelt.Extensions.Xunit.Hosting.Assets; using Xunit; -using Xunit.Abstractions; namespace Codebelt.Extensions.Xunit.Hosting { diff --git a/test/Codebelt.Extensions.Xunit.Hosting.Tests/MinimalHostTestFactoryTest.cs b/test/Codebelt.Extensions.Xunit.Hosting.Tests/MinimalHostTestFactoryTest.cs index 004aed7..030006b 100644 --- a/test/Codebelt.Extensions.Xunit.Hosting.Tests/MinimalHostTestFactoryTest.cs +++ b/test/Codebelt.Extensions.Xunit.Hosting.Tests/MinimalHostTestFactoryTest.cs @@ -1,6 +1,5 @@ using System; using Xunit; -using Xunit.Abstractions; namespace Codebelt.Extensions.Xunit.Hosting { diff --git a/test/Codebelt.Extensions.Xunit.Hosting.Tests/MinimalHostTestTest.cs b/test/Codebelt.Extensions.Xunit.Hosting.Tests/MinimalHostTestTest.cs index e1df5f3..d3e1acb 100644 --- a/test/Codebelt.Extensions.Xunit.Hosting.Tests/MinimalHostTestTest.cs +++ b/test/Codebelt.Extensions.Xunit.Hosting.Tests/MinimalHostTestTest.cs @@ -7,12 +7,11 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Xunit; -using Xunit.Abstractions; -using Xunit.Priority; +using Xunit.v3.Priority; namespace Codebelt.Extensions.Xunit.Hosting { - [TestCaseOrderer(PriorityOrderer.Name, PriorityOrderer.Assembly)] + [TestCaseOrderer(typeof(PriorityOrderer))] public class MinimalHostTestTest : MinimalHostTest { private bool _isHostRunning = false; diff --git a/test/Codebelt.Extensions.Xunit.Hosting.Tests/ServiceCollectionExtensions.cs b/test/Codebelt.Extensions.Xunit.Hosting.Tests/ServiceCollectionExtensions.cs index 414a718..c05e6f9 100644 --- a/test/Codebelt.Extensions.Xunit.Hosting.Tests/ServiceCollectionExtensions.cs +++ b/test/Codebelt.Extensions.Xunit.Hosting.Tests/ServiceCollectionExtensions.cs @@ -4,7 +4,6 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Xunit; -using Xunit.Abstractions; namespace Codebelt.Extensions.Xunit.Hosting { diff --git a/test/Codebelt.Extensions.Xunit.Tests/DisposableTest.cs b/test/Codebelt.Extensions.Xunit.Tests/DisposableTest.cs index 0e02c0c..f531e06 100644 --- a/test/Codebelt.Extensions.Xunit.Tests/DisposableTest.cs +++ b/test/Codebelt.Extensions.Xunit.Tests/DisposableTest.cs @@ -2,7 +2,6 @@ using System.Threading.Tasks; using Codebelt.Extensions.Xunit.Assets; using Xunit; -using Xunit.Abstractions; namespace Codebelt.Extensions.Xunit { diff --git a/test/Codebelt.Extensions.Xunit.Tests/StringExtensionsTest.cs b/test/Codebelt.Extensions.Xunit.Tests/StringExtensionsTest.cs index 8a8a73c..89de10f 100644 --- a/test/Codebelt.Extensions.Xunit.Tests/StringExtensionsTest.cs +++ b/test/Codebelt.Extensions.Xunit.Tests/StringExtensionsTest.cs @@ -1,6 +1,5 @@ using System.Runtime.InteropServices; using Xunit; -using Xunit.Abstractions; namespace Codebelt.Extensions.Xunit { diff --git a/test/Codebelt.Extensions.Xunit.Tests/TestTest.cs b/test/Codebelt.Extensions.Xunit.Tests/TestTest.cs index 53edd5c..9b54a78 100644 --- a/test/Codebelt.Extensions.Xunit.Tests/TestTest.cs +++ b/test/Codebelt.Extensions.Xunit.Tests/TestTest.cs @@ -1,8 +1,7 @@ using System; using System.Threading.Tasks; using Xunit; -using Xunit.Abstractions; -using Xunit.Sdk; +using Xunit.v3; namespace Codebelt.Extensions.Xunit { @@ -16,10 +15,10 @@ public TestTest(ITestOutputHelper output) : base(output) { } - public override Task InitializeAsync() + public override ValueTask InitializeAsync() { _initializeAsyncCalled = true; - return Task.CompletedTask; + return default; } protected override ValueTask OnDisposeManagedResourcesAsync() From d258522809c62d1ab31922848e7dab6d6608ef23 Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Sun, 14 Sep 2025 21:48:58 +0200 Subject: [PATCH 03/25] :boom: breaking change introduced by xUnit v3 --- src/Codebelt.Extensions.Xunit.Hosting/HostFixture.cs | 9 ++------- src/Codebelt.Extensions.Xunit/Test.cs | 12 +++--------- 2 files changed, 5 insertions(+), 16 deletions(-) diff --git a/src/Codebelt.Extensions.Xunit.Hosting/HostFixture.cs b/src/Codebelt.Extensions.Xunit.Hosting/HostFixture.cs index 1c3a55d..333baee 100644 --- a/src/Codebelt.Extensions.Xunit.Hosting/HostFixture.cs +++ b/src/Codebelt.Extensions.Xunit.Hosting/HostFixture.cs @@ -185,14 +185,9 @@ public async ValueTask DisposeAsync() /// Called immediately after the class has been created, before it is used. /// /// A that represents the asynchronous operation. - public virtual Task InitializeAsync() + public virtual ValueTask InitializeAsync() { - return Task.CompletedTask; - } - - Task IAsyncLifetime.DisposeAsync() - { - return DisposeAsync().AsTask(); + return default; } } } diff --git a/src/Codebelt.Extensions.Xunit/Test.cs b/src/Codebelt.Extensions.Xunit/Test.cs index 7d5139a..2754078 100644 --- a/src/Codebelt.Extensions.Xunit/Test.cs +++ b/src/Codebelt.Extensions.Xunit/Test.cs @@ -3,7 +3,6 @@ using System.Text.RegularExpressions; using System.Threading.Tasks; using Xunit; -using Xunit.Abstractions; namespace Codebelt.Extensions.Xunit { @@ -152,15 +151,10 @@ public async ValueTask DisposeAsync() /// /// Called immediately after the class has been created, before it is used. /// - /// A that represents the asynchronous operation. - public virtual Task InitializeAsync() + /// A that represents the asynchronous operation. + public virtual ValueTask InitializeAsync() { - return Task.CompletedTask; - } - - Task IAsyncLifetime.DisposeAsync() - { - return DisposeAsync().AsTask(); + return default; } } } From 62f6cddcb6da522f693fea44169702d57cce5f17 Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Sun, 14 Sep 2025 21:59:15 +0200 Subject: [PATCH 04/25] :package: updated NuGet package definition --- .../PackageReleaseNotes.txt | 14 ++++++++++---- .../PackageReleaseNotes.txt | 14 ++++++++++---- .../PackageReleaseNotes.txt | 17 +++++++++++++---- .../PackageReleaseNotes.txt | 17 +++++++++++++---- 4 files changed, 46 insertions(+), 16 deletions(-) diff --git a/.nuget/Codebelt.Extensions.Xunit.App/PackageReleaseNotes.txt b/.nuget/Codebelt.Extensions.Xunit.App/PackageReleaseNotes.txt index e9ac831..a3345bf 100644 --- a/.nuget/Codebelt.Extensions.Xunit.App/PackageReleaseNotes.txt +++ b/.nuget/Codebelt.Extensions.Xunit.App/PackageReleaseNotes.txt @@ -1,18 +1,24 @@ -Version 10.0.6 +Version 11.0.0 +Availability: .NET 10 and .NET 9 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  +Version 10.0.6 Availability: .NET 9 and .NET 8 - +  # ALM - CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)   Version 10.0.5 Availability: .NET 9 and .NET 8 - +  # ALM - CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)   Version 10.0.4 Availability: .NET 9 and .NET 8 - +  # ALM - CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)   diff --git a/.nuget/Codebelt.Extensions.Xunit.Hosting.AspNetCore/PackageReleaseNotes.txt b/.nuget/Codebelt.Extensions.Xunit.Hosting.AspNetCore/PackageReleaseNotes.txt index 609de43..7089a0d 100644 --- a/.nuget/Codebelt.Extensions.Xunit.Hosting.AspNetCore/PackageReleaseNotes.txt +++ b/.nuget/Codebelt.Extensions.Xunit.Hosting.AspNetCore/PackageReleaseNotes.txt @@ -1,18 +1,24 @@ -Version 10.0.6 +Version 11.0.0 +Availability: .NET 10 and .NET 9 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  +Version 10.0.6 Availability: .NET 9 and .NET 8 - +  # ALM - CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)   Version 10.0.5 Availability: .NET 9 and .NET 8 - +  # ALM - CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)   Version 10.0.4 Availability: .NET 9 and .NET 8 - +  # ALM - CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)   diff --git a/.nuget/Codebelt.Extensions.Xunit.Hosting/PackageReleaseNotes.txt b/.nuget/Codebelt.Extensions.Xunit.Hosting/PackageReleaseNotes.txt index e6bfa90..8041e6d 100644 --- a/.nuget/Codebelt.Extensions.Xunit.Hosting/PackageReleaseNotes.txt +++ b/.nuget/Codebelt.Extensions.Xunit.Hosting/PackageReleaseNotes.txt @@ -1,18 +1,27 @@ -Version 10.0.6 +Version 11.0.0 +Availability: .NET 10, .NET 9 and .NET Standard 2.0 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  +# Breaking Changes +- CHANGED HostFixture class in the Codebelt.Extensions.Xunit.Hosting namespace to use ValueTask for InitializeAsync instead of Task (xUnit v3 consequence change) +  +Version 10.0.6 Availability: .NET 9, .NET 8 and .NET Standard 2.0 - +  # ALM - CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)   Version 10.0.5 Availability: .NET 9, .NET 8 and .NET Standard 2.0 - +  # ALM - CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)   Version 10.0.4 Availability: .NET 9, .NET 8 and .NET Standard 2.0 - +  # ALM - CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)   diff --git a/.nuget/Codebelt.Extensions.Xunit/PackageReleaseNotes.txt b/.nuget/Codebelt.Extensions.Xunit/PackageReleaseNotes.txt index 8af1441..0808170 100644 --- a/.nuget/Codebelt.Extensions.Xunit/PackageReleaseNotes.txt +++ b/.nuget/Codebelt.Extensions.Xunit/PackageReleaseNotes.txt @@ -1,18 +1,27 @@ -Version 10.0.6 +Version 11.0.0 +Availability: .NET 10 and .NET 9 +  +# ALM +- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) +  +# Breaking Changes +- CHANGED Test class in the Codebelt.Extensions.Xunit namespace to use ValueTask for InitializeAsync instead of Task (xUnit v3 consequence change) +  +Version 10.0.6 Availability: .NET 9 and .NET 8 - +  # ALM - CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)   Version 10.0.5 Availability: .NET 9 and .NET 8 - +  # ALM - CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)   Version 10.0.4 Availability: .NET 9 and .NET 8 - +  # ALM - CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)   From a8961b36302a8e8934ebcfa52520df68a6452b1e Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Sun, 14 Sep 2025 21:59:26 +0200 Subject: [PATCH 05/25] :speech_balloon: updated community health pages --- CHANGELOG.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a80184a..c6f4261 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,28 @@ For more details, please refer to `PackageReleaseNotes.txt` on a per assembly ba > [!NOTE] > Changelog entries prior to version 8.4.0 was migrated from previous versions of Cuemon.Extensions.Xunit, Cuemon.Extensions.Xunit.Hosting, and Cuemon.Extensions.Xunit.Hosting.AspNetCore. +## [11.0.0] - TBD + +This is a major release that focuses on adapting to the latest .NET 10 (LTS) release, while also removing support for .NET 8 (LTS). + +At the same time we also adapted xUnit v3 as this is the one in active development whereas xUnit v2 is in maintenance mode only. + +> [!NOTE] +> xUnit has always been my preferred test framework for .NET, and I have been using it since late 2017. However, some of the design choices made in xUnit v3 are a bit puzzling to me, especially around something as important as versioning. +> +> All good practices has been put aside, and for the majority of new packages, major version is baked into the package name itself (e.g., `xunit.v3` instead of just `xunit`). +> +> Semantic Versioning is all about conveying meaning and intent through version numbers, and this approach introduces unnecessary redundancy and makes long-term maintenance less smooth. Its a mess that could lead others down a slippery slope of wrongdoings due to the popularity of the framework. +> +> That written, updating to v11.0.0 of this library should not provide major issues for you as a consumer, but I do recommend familiarizing yourself with the [Migrating Unit Tests from xUnit v2 to v3](https://xunit.net/docs/getting-started/v3/migration) guide. +> +> It's also worth reading the [What's New in xUnit v3](https://xunit.net/docs/getting-started/v3/whats-new) document to get a better understanding of the changes and improvements introduced. + +### Changed + +- Test class in the Codebelt.Extensions.Xunit namespace to use ValueTask for InitializeAsync instead of Task (xUnit v3 consequence change) +- HostFixture class in the Codebelt.Extensions.Xunit.Hosting namespace to use ValueTask for InitializeAsync instead of Task (xUnit v3 consequence change) + ## [10.0.6] - 2025-09-14 This is a service update that focuses on package dependencies. From 5ec196cd3e50d565894469ac6ec1c5289b30dec4 Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Mon, 15 Sep 2025 12:01:14 +0200 Subject: [PATCH 06/25] :memo: changed note to warning due to xUnit v3 consequences --- CHANGELOG.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c6f4261..3156e79 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,16 +13,20 @@ This is a major release that focuses on adapting to the latest .NET 10 (LTS) rel At the same time we also adapted xUnit v3 as this is the one in active development whereas xUnit v2 is in maintenance mode only. -> [!NOTE] -> xUnit has always been my preferred test framework for .NET, and I have been using it since late 2017. However, some of the design choices made in xUnit v3 are a bit puzzling to me, especially around something as important as versioning. +> [!WARNING] +> Design choices made in xUnit v3 are a bit puzzling to me, especially around something as important as versioning and requirement for executable projects. > > All good practices has been put aside, and for the majority of new packages, major version is baked into the package name itself (e.g., `xunit.v3` instead of just `xunit`). > > Semantic Versioning is all about conveying meaning and intent through version numbers, and this approach introduces unnecessary redundancy and makes long-term maintenance less smooth. Its a mess that could lead others down a slippery slope of wrongdoings due to the popularity of the framework. > -> That written, updating to v11.0.0 of this library should not provide major issues for you as a consumer, but I do recommend familiarizing yourself with the [Migrating Unit Tests from xUnit v2 to v3](https://xunit.net/docs/getting-started/v3/migration) guide. +> Another unfortunate design choice is the requirement of executable projects (i.e., output type `exe` instead of `library`). This has implications when you have optimized your CI to not waste CPU cycles on restoring/building test projects (build once strategy). +> +> Updating to v11.0.0 of this library should not provide issues for you as a consumer, but you should expect consequence changes related to xUnit v3. Because of this, I do recommend familiarizing yourself with the [Migrating Unit Tests from xUnit v2 to v3](https://xunit.net/docs/getting-started/v3/migration) guide. > > It's also worth reading the [What's New in xUnit v3](https://xunit.net/docs/getting-started/v3/whats-new) document to get a better understanding of the changes and improvements introduced. +> +> That written, xUnit will continue to remain my preferred test framework for .NET, I just needed to vent my frustration and warn you about the pitfalls of xUnit v3. ### Changed From ac18076359a0c67def9618eb3b16d03cb572f8ca Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Fri, 17 Oct 2025 23:57:59 +0200 Subject: [PATCH 07/25] :arrow_up: bump dependencies --- Directory.Packages.props | 26 +++++++++++++------------- testenvironments.json | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 14ead03..15135e2 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -7,19 +7,19 @@ - - + + - - - - - + + + + + @@ -30,11 +30,11 @@ - - - - - - + + + + + + \ No newline at end of file diff --git a/testenvironments.json b/testenvironments.json index 8f2eaf9..731f73b 100644 --- a/testenvironments.json +++ b/testenvironments.json @@ -9,7 +9,7 @@ { "name": "Docker-Ubuntu", "type": "docker", - "dockerImage": "gimlichael/ubuntu-testrunner:net9.0.305-10.0.100-rc.1" + "dockerImage": "gimlichael/ubuntu-testrunner:net9.0.305-10.0.100-rc.2" } ] } From 514d5d161ead2f427df2179ed47f53b01bd8a10d Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Sat, 18 Oct 2025 00:13:08 +0200 Subject: [PATCH 08/25] fix --- .github/workflows/pipelines.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pipelines.yml b/.github/workflows/pipelines.yml index 5232a66..561138a 100644 --- a/.github/workflows/pipelines.yml +++ b/.github/workflows/pipelines.yml @@ -63,6 +63,7 @@ jobs: build-switches: -p:SkipSignAssembly=true restore: true # we need to restore the packages for the test project build: true # we need to build for .net48 tests + include-preview: true sonarcloud: name: call-sonarcloud From 15ffb01ffef8d589019d1b1554c5a2a70ea8e8ec Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Sun, 19 Oct 2025 14:42:05 +0200 Subject: [PATCH 09/25] :wrench: refactor package references for netstandard2 compatibility --- Directory.Packages.props | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 15135e2..7eb7579 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -7,11 +7,9 @@ - - @@ -21,6 +19,10 @@ + + + + From ca29df7971d29afc1fca974505829119c16ed6ce Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Sun, 19 Oct 2025 17:15:02 +0200 Subject: [PATCH 10/25] :construction_worker: disable codeql due to .NET 10 RC2 https://github.com/github/codeql-action/issues/3207 --- .github/workflows/pipelines.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/pipelines.yml b/.github/workflows/pipelines.yml index 561138a..afd877b 100644 --- a/.github/workflows/pipelines.yml +++ b/.github/workflows/pipelines.yml @@ -84,14 +84,14 @@ jobs: repository: codebeltnet/xunit secrets: inherit - codeql: - name: call-codeql - needs: [build,test] - uses: codebeltnet/jobs-codeql/.github/workflows/default.yml@v2 - with: - include-preview: true - permissions: - security-events: write + # codeql: + # name: call-codeql + # needs: [build,test] + # uses: codebeltnet/jobs-codeql/.github/workflows/default.yml@v2 + # with: + # include-preview: true + # permissions: + # security-events: write deploy: if: github.event_name != 'pull_request' From 25e8147e20293bcfbe5bcfdce59ed99614e1be44 Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Sun, 19 Oct 2025 17:16:30 +0200 Subject: [PATCH 11/25] :construction_worker: remove codeql need --- .github/workflows/pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pipelines.yml b/.github/workflows/pipelines.yml index afd877b..6e5ce49 100644 --- a/.github/workflows/pipelines.yml +++ b/.github/workflows/pipelines.yml @@ -96,7 +96,7 @@ jobs: deploy: if: github.event_name != 'pull_request' name: call-nuget - needs: [build, pack, test, sonarcloud, codecov, codeql] + needs: [build, pack, test, sonarcloud, codecov] # codeql uses: codebeltnet/jobs-nuget-push/.github/workflows/default.yml@v2 with: version: ${{ needs.build.outputs.version }} From e3532e13a33841002ee9b884f53d4d3f93edfa30 Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Sun, 19 Oct 2025 18:50:25 +0200 Subject: [PATCH 12/25] :arrow_up: bump dependencies --- Directory.Packages.props | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 7eb7579..0ce6ee4 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -4,9 +4,9 @@ true - - - + + + From 9633b3646c5fa7e84281fb20226501f8e3d0cf7c Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Wed, 22 Oct 2025 19:38:28 +0200 Subject: [PATCH 13/25] :construction_worker: enable codeql due to potential fix https://github.com/github/codeql/pull/20663 --- .github/workflows/pipelines.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/pipelines.yml b/.github/workflows/pipelines.yml index 6e5ce49..561138a 100644 --- a/.github/workflows/pipelines.yml +++ b/.github/workflows/pipelines.yml @@ -84,19 +84,19 @@ jobs: repository: codebeltnet/xunit secrets: inherit - # codeql: - # name: call-codeql - # needs: [build,test] - # uses: codebeltnet/jobs-codeql/.github/workflows/default.yml@v2 - # with: - # include-preview: true - # permissions: - # security-events: write + codeql: + name: call-codeql + needs: [build,test] + uses: codebeltnet/jobs-codeql/.github/workflows/default.yml@v2 + with: + include-preview: true + permissions: + security-events: write deploy: if: github.event_name != 'pull_request' name: call-nuget - needs: [build, pack, test, sonarcloud, codecov] # codeql + needs: [build, pack, test, sonarcloud, codecov, codeql] uses: codebeltnet/jobs-nuget-push/.github/workflows/default.yml@v2 with: version: ${{ needs.build.outputs.version }} From 7d7c602e316b55e6f5b05bd04db477a0f1d9358f Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Tue, 11 Nov 2025 17:50:12 +0100 Subject: [PATCH 14/25] :construction_worker: updated CI to exclude preview builds and codeql as github did not apply fix for .net10 https://github.com/github/codeql-action/issues/3207 --- .github/workflows/pipelines.yml | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/.github/workflows/pipelines.yml b/.github/workflows/pipelines.yml index 561138a..25a2a9d 100644 --- a/.github/workflows/pipelines.yml +++ b/.github/workflows/pipelines.yml @@ -27,11 +27,10 @@ jobs: strategy: matrix: configuration: [Debug, Release] - uses: codebeltnet/jobs-dotnet-build/.github/workflows/default.yml@v2 + uses: codebeltnet/jobs-dotnet-build/.github/workflows/default.yml@v3 with: configuration: ${{ matrix.configuration }} strong-name-key-filename: xunit.snk - include-preview: true secrets: GCP_TOKEN: ${{ secrets.GCP_TOKEN }} GCP_BUCKETNAME: ${{ secrets.GCP_BUCKETNAME }} @@ -42,11 +41,10 @@ jobs: strategy: matrix: configuration: [Debug, Release] - uses: codebeltnet/jobs-dotnet-pack/.github/workflows/default.yml@v2 + uses: codebeltnet/jobs-dotnet-pack/.github/workflows/default.yml@v3 with: configuration: ${{ matrix.configuration }} version: ${{ needs.build.outputs.version }} - include-preview: true test: name: call-test @@ -56,24 +54,22 @@ jobs: matrix: os: [ubuntu-24.04, windows-2022] configuration: [Debug, Release] - uses: codebeltnet/jobs-dotnet-test/.github/workflows/default.yml@v2 + uses: codebeltnet/jobs-dotnet-test/.github/workflows/default.yml@v3 with: configuration: ${{ matrix.configuration }} runs-on: ${{ matrix.os }} build-switches: -p:SkipSignAssembly=true restore: true # we need to restore the packages for the test project build: true # we need to build for .net48 tests - include-preview: true sonarcloud: name: call-sonarcloud needs: [build,test] - uses: codebeltnet/jobs-sonarcloud/.github/workflows/default.yml@v2 + uses: codebeltnet/jobs-sonarcloud/.github/workflows/default.yml@v3 with: organization: geekle projectKey: xunit version: ${{ needs.build.outputs.version }} - include-preview: true secrets: inherit codecov: @@ -84,19 +80,17 @@ jobs: repository: codebeltnet/xunit secrets: inherit - codeql: - name: call-codeql - needs: [build,test] - uses: codebeltnet/jobs-codeql/.github/workflows/default.yml@v2 - with: - include-preview: true - permissions: - security-events: write + # codeql: + # name: call-codeql + # needs: [build,test] + # uses: codebeltnet/jobs-codeql/.github/workflows/default.yml@v3 + # permissions: + # security-events: write deploy: if: github.event_name != 'pull_request' name: call-nuget - needs: [build, pack, test, sonarcloud, codecov, codeql] + needs: [build, pack, test, sonarcloud, codecov] uses: codebeltnet/jobs-nuget-push/.github/workflows/default.yml@v2 with: version: ${{ needs.build.outputs.version }} From 90a32bbc043db720037256a88a86157e1771ce40 Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Tue, 11 Nov 2025 17:51:34 +0100 Subject: [PATCH 15/25] =?UTF-8?q?=F0=9F=93=A6=20updated=20NuGet=20README?= =?UTF-8?q?=20files?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .nuget/Codebelt.Extensions.Xunit.App/README.md | 5 +++++ .../Codebelt.Extensions.Xunit.Hosting.AspNetCore/README.md | 7 ++++++- .nuget/Codebelt.Extensions.Xunit.Hosting/README.md | 5 +++++ .nuget/Codebelt.Extensions.Xunit/README.md | 5 +++++ 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/.nuget/Codebelt.Extensions.Xunit.App/README.md b/.nuget/Codebelt.Extensions.Xunit.App/README.md index cfe860f..ea919fa 100644 --- a/.nuget/Codebelt.Extensions.Xunit.App/README.md +++ b/.nuget/Codebelt.Extensions.Xunit.App/README.md @@ -2,6 +2,11 @@ An open-source project (MIT license) that targets and complements the [xUnit.net](https://xunit.net/) test platform. It provides a uniform and convenient way of doing unit test for all project types in .NET. +Your versatile xUnit companion for: +- Modern development with `.NET 9` and `.NET 10`, +- Cross-platform libraries with `.NET Standard 2` (where applicable), +- Legacy applications on `.NET Framework 4.6.2` and newer. + It is, by heart, free, flexible and built to extend and boost your agile codebelt. ## **Codebelt.Extensions.Xunit.App** for .NET diff --git a/.nuget/Codebelt.Extensions.Xunit.Hosting.AspNetCore/README.md b/.nuget/Codebelt.Extensions.Xunit.Hosting.AspNetCore/README.md index 9a5aba9..1704bd6 100644 --- a/.nuget/Codebelt.Extensions.Xunit.Hosting.AspNetCore/README.md +++ b/.nuget/Codebelt.Extensions.Xunit.Hosting.AspNetCore/README.md @@ -2,7 +2,10 @@ An open-source project (MIT license) that targets and complements the [xUnit.net](https://xunit.net/) test platform. It provides a uniform and convenient way of doing unit test for all project types in .NET. -Perhaps even more convenient than what [WebApplicationFactory](https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.testing.webapplicationfactory-1) has to offer? +Your versatile xUnit companion for: +- Modern development with `.NET 9` and `.NET 10`, +- Cross-platform libraries with `.NET Standard 2` (where applicable), +- Legacy applications on `.NET Framework 4.6.2` and newer. It is, by heart, free, flexible and built to extend and boost your agile codebelt. @@ -10,6 +13,8 @@ It is, by heart, free, flexible and built to extend and boost your agile codebel The `Codebelt.Extensions.Xunit.Hosting.AspNetCore` namespace contains types that provides a uniform way of doing unit testing that depends on ASP.NET Core and used in conjunction with Microsoft Dependency Injection. The namespace relates to the `Microsoft.AspNetCore.TestHost` namespace. +Perhaps even more convenient than what [WebApplicationFactory](https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.testing.webapplicationfactory-1) has to offer? + More documentation available at our documentation site: - [Codebelt.Extensions.Xunit.Hosting.AspNetCore](https://xunit.codebelt.net/api/Codebelt.Extensions.Xunit.Hosting.AspNetCore.html) 🔗 diff --git a/.nuget/Codebelt.Extensions.Xunit.Hosting/README.md b/.nuget/Codebelt.Extensions.Xunit.Hosting/README.md index 4f1d6f8..2f2182d 100644 --- a/.nuget/Codebelt.Extensions.Xunit.Hosting/README.md +++ b/.nuget/Codebelt.Extensions.Xunit.Hosting/README.md @@ -2,6 +2,11 @@ An open-source project (MIT license) that targets and complements the [xUnit.net](https://xunit.net/) test platform. It provides a uniform and convenient way of doing unit test for all project types in .NET. +Your versatile xUnit companion for: +- Modern development with `.NET 9` and `.NET 10`, +- Cross-platform libraries with `.NET Standard 2` (where applicable), +- Legacy applications on `.NET Framework 4.6.2` and newer. + It is, by heart, free, flexible and built to extend and boost your agile codebelt. ## **Codebelt.Extensions.Xunit.Hosting** for .NET diff --git a/.nuget/Codebelt.Extensions.Xunit/README.md b/.nuget/Codebelt.Extensions.Xunit/README.md index 7a06563..6867dc9 100644 --- a/.nuget/Codebelt.Extensions.Xunit/README.md +++ b/.nuget/Codebelt.Extensions.Xunit/README.md @@ -2,6 +2,11 @@ An open-source project (MIT license) that targets and complements the [xUnit.net](https://xunit.net/) test platform. It provides a uniform and convenient way of doing unit test for all project types in .NET. +Your versatile xUnit companion for: +- Modern development with `.NET 9` and `.NET 10`, +- Cross-platform libraries with `.NET Standard 2` (where applicable), +- Legacy applications on `.NET Framework 4.6.2` and newer. + It is, by heart, free, flexible and built to extend and boost your agile codebelt. ## **Codebelt.Extensions.Xunit** for .NET From 37758322587ad6a0e59c3162986fc80d0616621c Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Tue, 11 Nov 2025 17:52:21 +0100 Subject: [PATCH 16/25] :wrench: updated to include .net 10 and exclude .net 8 --- .docfx/docfx.json | 2 +- .docfx/includes/availability-default.md | 2 +- .docfx/includes/availability-modern.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.docfx/docfx.json b/.docfx/docfx.json index 6681193..2e9e6fe 100644 --- a/.docfx/docfx.json +++ b/.docfx/docfx.json @@ -14,7 +14,7 @@ "dest": "api", "filter": "filterConfig.yml", "properties": { - "TargetFramework": "net9.0" + "TargetFramework": "net10.0" } } ], diff --git a/.docfx/includes/availability-default.md b/.docfx/includes/availability-default.md index 89f4c06..fa28d0e 100644 --- a/.docfx/includes/availability-default.md +++ b/.docfx/includes/availability-default.md @@ -1 +1 @@ -Availability: .NET 9, .NET 8 and .NET Standard 2.0 \ No newline at end of file +Availability: .NET 10, .NET 9 and .NET Standard 2.0 \ No newline at end of file diff --git a/.docfx/includes/availability-modern.md b/.docfx/includes/availability-modern.md index abf5369..af5cf4b 100644 --- a/.docfx/includes/availability-modern.md +++ b/.docfx/includes/availability-modern.md @@ -1 +1 @@ -Availability: .NET 9 and .NET 8 \ No newline at end of file +Availability: .NET 10 and .NET 9 \ No newline at end of file From fa1cd4d71f718b045bbe32c540546bb7490022fd Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Tue, 11 Nov 2025 17:52:44 +0100 Subject: [PATCH 17/25] :speech_balloon: updated community health pages --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f29f43a..69d97a0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ For more details, please refer to `PackageReleaseNotes.txt` on a per assembly ba > [!NOTE] > Changelog entries prior to version 8.4.0 was migrated from previous versions of Cuemon.Extensions.Xunit, Cuemon.Extensions.Xunit.Hosting, and Cuemon.Extensions.Xunit.Hosting.AspNetCore. -## [11.0.0] - TBD +## [11.0.0] - 2025-11-11 This is a major release that focuses on adapting to the latest .NET 10 (LTS) release, while also removing support for .NET 8 (LTS). From fdddb092fa72968c9d2345940bb08d818353f2d7 Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Tue, 11 Nov 2025 17:53:00 +0100 Subject: [PATCH 18/25] :arrow_up: bump dependencies --- .docfx/Dockerfile.docfx | 4 ++-- Directory.Packages.props | 20 ++++++++++---------- testenvironments.json | 2 +- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.docfx/Dockerfile.docfx b/.docfx/Dockerfile.docfx index 5cc1890..14b7583 100644 --- a/.docfx/Dockerfile.docfx +++ b/.docfx/Dockerfile.docfx @@ -1,9 +1,9 @@ -ARG NGINX_VERSION=1.29.1-alpine +ARG NGINX_VERSION=1.29.3-alpine FROM --platform=$BUILDPLATFORM nginx:${NGINX_VERSION} AS base RUN rm -rf /usr/share/nginx/html/* -FROM --platform=$BUILDPLATFORM codebeltnet/docfx:2.78.3 AS build +FROM --platform=$BUILDPLATFORM codebeltnet/docfx:2.78.4 AS build ADD [".", "docfx"] diff --git a/Directory.Packages.props b/Directory.Packages.props index 0ce6ee4..e920407 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -7,7 +7,7 @@ - + @@ -15,12 +15,12 @@ - - + + - + @@ -32,11 +32,11 @@ - - - - - - + + + + + + \ No newline at end of file diff --git a/testenvironments.json b/testenvironments.json index 731f73b..2bc34cb 100644 --- a/testenvironments.json +++ b/testenvironments.json @@ -9,7 +9,7 @@ { "name": "Docker-Ubuntu", "type": "docker", - "dockerImage": "gimlichael/ubuntu-testrunner:net9.0.305-10.0.100-rc.2" + "dockerImage": "gimlichael/ubuntu-testrunner:net8.0.416-9.0.307-10.0.100" } ] } From c2330be0fa301fafe39f6644b711d8b246a92164 Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Tue, 11 Nov 2025 17:53:45 +0100 Subject: [PATCH 19/25] doc --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 97e9316..ceacb69 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,15 @@ An open-source project (MIT license) that targets and complements the [xUnit.net](https://xunit.net/) test platform. It provides a uniform and convenient way of doing unit test for all project types in .NET. +Your versatile xUnit companion for: +- Modern development with `.NET 9` and `.NET 10`, +- Cross-platform libraries with `.NET Standard 2` (where applicable), +- Legacy applications on `.NET Framework 4.6.2` and newer. + +It is, by heart, free, flexible and built to extend and boost your agile codebelt. + +## 📚 Documentation + Full documentation (generated by [DocFx](https://github.com/dotnet/docfx)) located here: https://xunit.codebelt.net/ ### 📦 Standalone Packages From 09d970d25cfd9f54c3cc06c6e2e7abafa7360fff Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Tue, 11 Nov 2025 21:35:26 +0100 Subject: [PATCH 20/25] Update src/Codebelt.Extensions.Xunit.Hosting/HostFixture.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- src/Codebelt.Extensions.Xunit.Hosting/HostFixture.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Codebelt.Extensions.Xunit.Hosting/HostFixture.cs b/src/Codebelt.Extensions.Xunit.Hosting/HostFixture.cs index 333baee..93b1e19 100644 --- a/src/Codebelt.Extensions.Xunit.Hosting/HostFixture.cs +++ b/src/Codebelt.Extensions.Xunit.Hosting/HostFixture.cs @@ -184,7 +184,7 @@ public async ValueTask DisposeAsync() /// /// Called immediately after the class has been created, before it is used. /// - /// A that represents the asynchronous operation. + /// A that represents the asynchronous operation. public virtual ValueTask InitializeAsync() { return default; From e3da3ceb0bc1c6953d70301e5f3df105a4701ee6 Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Tue, 11 Nov 2025 21:36:06 +0100 Subject: [PATCH 21/25] Update .nuget/Codebelt.Extensions.Xunit.Hosting.AspNetCore/README.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .nuget/Codebelt.Extensions.Xunit.Hosting.AspNetCore/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.nuget/Codebelt.Extensions.Xunit.Hosting.AspNetCore/README.md b/.nuget/Codebelt.Extensions.Xunit.Hosting.AspNetCore/README.md index 1704bd6..46ff128 100644 --- a/.nuget/Codebelt.Extensions.Xunit.Hosting.AspNetCore/README.md +++ b/.nuget/Codebelt.Extensions.Xunit.Hosting.AspNetCore/README.md @@ -3,7 +3,7 @@ An open-source project (MIT license) that targets and complements the [xUnit.net](https://xunit.net/) test platform. It provides a uniform and convenient way of doing unit test for all project types in .NET. Your versatile xUnit companion for: -- Modern development with `.NET 9` and `.NET 10`, +- Modern development with `.NET 9` and `.NET 10`, - Cross-platform libraries with `.NET Standard 2` (where applicable), - Legacy applications on `.NET Framework 4.6.2` and newer. From 327bcc9657d07b3f46a3cb74ca9c2f5adeea514d Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Tue, 11 Nov 2025 21:36:15 +0100 Subject: [PATCH 22/25] Update .nuget/Codebelt.Extensions.Xunit/README.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .nuget/Codebelt.Extensions.Xunit/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.nuget/Codebelt.Extensions.Xunit/README.md b/.nuget/Codebelt.Extensions.Xunit/README.md index 6867dc9..9d13aa3 100644 --- a/.nuget/Codebelt.Extensions.Xunit/README.md +++ b/.nuget/Codebelt.Extensions.Xunit/README.md @@ -3,7 +3,7 @@ An open-source project (MIT license) that targets and complements the [xUnit.net](https://xunit.net/) test platform. It provides a uniform and convenient way of doing unit test for all project types in .NET. Your versatile xUnit companion for: -- Modern development with `.NET 9` and `.NET 10`, +- Modern development with `.NET 9` and `.NET 10`, - Cross-platform libraries with `.NET Standard 2` (where applicable), - Legacy applications on `.NET Framework 4.6.2` and newer. From a54d01bcc1784fc9aced39fbbd5919a6c1b380c8 Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Tue, 11 Nov 2025 21:36:26 +0100 Subject: [PATCH 23/25] Update .nuget/Codebelt.Extensions.Xunit.Hosting/README.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .nuget/Codebelt.Extensions.Xunit.Hosting/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.nuget/Codebelt.Extensions.Xunit.Hosting/README.md b/.nuget/Codebelt.Extensions.Xunit.Hosting/README.md index 2f2182d..795d2c0 100644 --- a/.nuget/Codebelt.Extensions.Xunit.Hosting/README.md +++ b/.nuget/Codebelt.Extensions.Xunit.Hosting/README.md @@ -3,7 +3,7 @@ An open-source project (MIT license) that targets and complements the [xUnit.net](https://xunit.net/) test platform. It provides a uniform and convenient way of doing unit test for all project types in .NET. Your versatile xUnit companion for: -- Modern development with `.NET 9` and `.NET 10`, +- Modern development with `.NET 9` and `.NET 10`, - Cross-platform libraries with `.NET Standard 2` (where applicable), - Legacy applications on `.NET Framework 4.6.2` and newer. From 30f629d9b5d7bde1313d04ae437144571e8bd94e Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Tue, 11 Nov 2025 21:36:34 +0100 Subject: [PATCH 24/25] Update README.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ceacb69..e15334a 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ An open-source project (MIT license) that targets and complements the [xUnit.net](https://xunit.net/) test platform. It provides a uniform and convenient way of doing unit test for all project types in .NET. Your versatile xUnit companion for: -- Modern development with `.NET 9` and `.NET 10`, +- Modern development with `.NET 9` and `.NET 10`, - Cross-platform libraries with `.NET Standard 2` (where applicable), - Legacy applications on `.NET Framework 4.6.2` and newer. From b82b2eea09be37137c9511cb4d83421531a0428d Mon Sep 17 00:00:00 2001 From: Michael Mortensen Date: Tue, 11 Nov 2025 21:36:47 +0100 Subject: [PATCH 25/25] Update .nuget/Codebelt.Extensions.Xunit.App/README.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .nuget/Codebelt.Extensions.Xunit.App/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.nuget/Codebelt.Extensions.Xunit.App/README.md b/.nuget/Codebelt.Extensions.Xunit.App/README.md index ea919fa..349338c 100644 --- a/.nuget/Codebelt.Extensions.Xunit.App/README.md +++ b/.nuget/Codebelt.Extensions.Xunit.App/README.md @@ -3,7 +3,7 @@ An open-source project (MIT license) that targets and complements the [xUnit.net](https://xunit.net/) test platform. It provides a uniform and convenient way of doing unit test for all project types in .NET. Your versatile xUnit companion for: -- Modern development with `.NET 9` and `.NET 10`, +- Modern development with `.NET 9` and `.NET 10`, - Cross-platform libraries with `.NET Standard 2` (where applicable), - Legacy applications on `.NET Framework 4.6.2` and newer.