Skip to content

Releases

Release 6.4.7.2960

Choose a tag to compare

@credfeto credfeto released this 27 Oct 12:11
95fe117

Added

  • FTS003 analyzer rule requires a base class's BuildDispatcherCases to list its own [DispatchedTest] methods and those of any builder-less intermediate base
  • FTS004 analyzer rule requires a base class's BuildDispatcherCases to compose its nearest builder-owning ancestor's builder; FTS003 and FTS004 run in any compilation that declares builders and references FunFair.Test.Source.Generator
  • FunFairTestDisableSourceGenerators MSBuild property opts out of the FunFair.Test.Source.Generator generators, made visible to the compiler by the generator package's build props
  • Shared case-name parser, so DispatcherCaseData.Case now throws ArgumentException for an action that makes no call
  • [DispatchedTest] attribute to mark shared base-class test methods that run through each leaf test class's [Theory] dispatcher instead of xunit discovery

Fixed

  • Use forward-slash path separators in MSBuild files for cross-platform compatibility
  • Rename async test methods to end in Async in AotTestDispatcherAnalyzerTests
  • Use MockDateTimeSources.Past instead of DateTimeOffset.UtcNow in logging tests
  • Correct wrong logger category in LoggingFolderCleanupTestBaseTests.LoggingOutputs
  • Correct misleading test names, reversed/incorrect assertion messages in shared test base classes (renames may affect consumer test filters/quarantines)
  • Avoid unnecessary StringBuilder allocation in XUnitLoggerBase.Log on the common no-option, no-exception path, and pre-size the StringBuilder from the formatted message length on the remaining path
  • Shared base classes in FunFair.Test.Common now mark tests [DispatchedTest] instead of [Fact], so xunit.analyzers 2.2.0 xUnit1072 no longer fires on consuming Native AOT test classes and per-class suppressions are not needed

Changed

  • Dependencies - Updated Microsoft.Sbom.Targets to 4.1.13
  • Dependencies - Updated SonarAnalyzer.CSharp to 10.35.0.4138
  • Dependencies - Updated FunFair.CodeAnalysis to 7.2.20.2501
  • Dependencies - Updated Microsoft.VisualStudio.Threading.Analyzers to 18.12.1
  • Dependencies - Updated Roslynator.Analyzers to 5.0.1
  • Dependencies - Updated xunit.runner.visualstudio to 4.0.1
  • Dependencies - Updated FluentValidation to 12.2.0
  • Dependencies - Updated Microsoft.Extensions to 10.11.0
  • Dependencies - Updated xunit.analyzers to 2.2.0
  • Dependencies - Updated Meziantou.Analyzer to 3.0.316
  • Dependencies - Updated Nullable.Extended.Analyzer to 1.17.0
  • Dependencies - Updated xunit.v3 to 4.0.2
  • SDK - Updated DotNet SDK to 10.0.403
  • FTS001 and FTS002 now detect affected bases by [DispatchedTest] rather than a hardcoded list, and walk through consumer-owned intermediate bases (BREAKING - such a leaf without a dispatcher now gets FTS001)
  • FTS002 now checks Case(...)-form, property/field and generated-code providers, and which ancestor builder a delegating provider composes; the rules abstain on shapes they cannot follow
  • BREAKING - inherited base-class tests are no longer discovered by reflection based (non-AOT) xunit discovery and run only through a dispatcher; FTS001 and FTS002 enforce that dispatcher only where FunFair.Test.Source.Generator is referenced

Release 6.4.6.2749

Choose a tag to compare

@credfeto credfeto released this 10 Sep 14:32
8142b2b

Changed

  • Dependencies - Updated Credfeto.Enumeration to 1.2.154.2267
  • Dependencies - Updated SonarAnalyzer.CSharp to 10.34.0.3385
  • Dependencies - Updated Microsoft.Extensions to 10.10.0
  • Dependencies - Updated Meziantou.Analyzer to 3.0.235

Release 6.4.5.2739

Choose a tag to compare

@credfeto credfeto released this 09 Sep 12:26
e01bd56

Changed

  • Dependencies - Updated Meziantou.Analyzer to 3.0.228
  • SDK - Updated DotNet SDK to 10.0.401

Release 6.4.3.2685

Choose a tag to compare

@credfeto credfeto released this 28 Aug 08:47
75488ca

Changed

  • Each affected FunFair.Test.Common base class (EquatableObjectTestBase, ComparableObjectTestBase, EquatableValueTestBase, ComparableValueTestBase, JsonConverterObjectTestBase, JsonConverterValueTestBase, ValidatorTestBase) now owns a single BuildDispatcherCases() method producing its AOT dispatcher case table once via a Case(t => t.Method()) helper (using CallerArgumentExpression to capture the method name at compile time, not reflection), instead of every leaf class hand-copying the full nameof/lambda table; leaf classes' BaseCaseData() collapses to a one-line delegation

Release 6.4.2.2678

Choose a tag to compare

@credfeto credfeto released this 27 Aug 13:27
8f8fa4b

Added

  • Added unit test coverage for FunFair.Test.Source.Generator (TestAssemblyCodeGenerator and ProtectedMemberSuppressionGenerator), which previously had none. Internal test-only change - no public API or behaviour change for consumers.
  • Added FunFair.Test.Common.Mocks, a new class library holding the non-test support code (mocks, fakes, converters, test-data helpers) previously embedded inside FunFair.Test.Common.Tests. Internal restructuring only - no public API or behaviour change for consumers of the published packages.
  • AOT test dispatcher analyzer (FTS001/FTS002) enforcing discoverable inherited [Fact]/[Theory] methods on FunFair.Test.Common leaf test classes under xUnit v3 AOT test discovery

Changed

  • Dependencies - Updated CSharpIsNullAnalyzer to 0.2.19
  • Dependencies - Updated Roslynator.Analyzers to 5.0.0
  • Dependencies - Updated SonarAnalyzer.CSharp to 10.33.0.1635
  • BREAKING: Renamed JsonConverterTestBase<TConverter, TObject> to JsonConverterObjectTestBase<TConverter, TObject> and JsonConverterStructTestBase<TConverter, TObject> to JsonConverterValueTestBase<TConverter, TObject>, matching the Object/Value naming convention already used by ComparableObjectTestBase/ComparableValueTestBase and EquatableObjectTestBase/EquatableValueTestBase. Consumers deriving from either base class need to update to the new type name on next upgrade.
  • Dependencies - Updated Meziantou.Analyzer to 3.0.189
  • Adopted the org-owned Credfeto.SourceGeneration.Helpers package in FunFair.Test.Source.Generator, replacing the duplicated local CodeBuilder helper. Internal consolidation - no change to generated output; the shipped generator package now also carries Credfeto.SourceGeneration.Helpers.dll alongside the generator DLL.

Removed

  • Removed the dead GenerateEntryPoint code path from FunFair.Test.Source.Generator (existed only to work around xunit/xunit#3435, now fixed), and the now-unreachable CodeBuilder helpers/attribute-extraction machinery left behind once it was gone. Internal cleanup only - no public API or behaviour change for consumers.

Release 6.4.0.2617

Choose a tag to compare

@credfeto credfeto released this 20 Aug 10:35
278afb4

Changed

  • Switched xunit.v3 test packages to their AOT variants (xunit.v3.aot.mtp-v2, xunit.v3.assert.aot, xunit.v3.extensibility.core.aot)

Release 6.3.9.2602

Choose a tag to compare

@credfeto credfeto released this 19 Aug 08:43
367a910

Changed

  • Dependencies - Updated FunFair.CodeAnalysis to 7.2.12.2288
  • Dependencies - Updated xunit.analyzers to 2.0.0
  • Dependencies - Updated xunit.runner.visualstudio to 4.0.0
  • Dependencies - Updated xunit.v3 to 4.0.0
  • Dependencies - Updated Roslynator.Analyzers to 4.16.1
  • Dependencies - Updated Meziantou.Analyzer to 3.0.165
  • Dependencies - Updated Microsoft.CodeAnalysis.Analyzers to 5.9.0
  • Dependencies - Updated Microsoft.CodeAnalysis.CSharp to 5.9.0

Release 6.3.8.2585

Choose a tag to compare

@credfeto credfeto released this 12 Aug 17:19
818a815

Fixed

  • Test.Common - Fixed XUnitLoggerProvider falling back to UseUtcTimestamp false instead of the intended Default (true) when no logger options are supplied
  • Test.Infrastructure - Fixed CA1873 code-scanning alert on ILogger test-verification helpers (Received/DidNotReceive)

Changed

  • Dependencies - Updated FunFair.CodeAnalysis to 7.2.11.2216
  • Target net10.0 exclusively, dropping net9.0 multi-targeting
  • Test.Common/Test.Infrastructure - Removed duplicated validator test-base logic, dead null-guards on non-nullable parameters, and stale comments
  • Dependencies - Updated Roslynator.Analyzers to 4.16.0
  • Dependencies - Updated SonarAnalyzer.CSharp to 10.32.0.713
  • Dependencies - Updated NSubstitute to 6.2.0
  • SDK - Updated DotNet SDK to 10.0.400
  • Dependencies - Updated Meziantou.Analyzer to 3.0.147
  • Dependencies - Updated Microsoft.Extensions to 10.9.0

Release 6.3.7.2568

Choose a tag to compare

@credfeto credfeto released this 10 Aug 17:00
618339a

Changed

  • Dependencies - Updated Credfeto.Enumeration to 1.2.151.2192
  • Dependencies - Updated FunFair.CodeAnalysis to 7.2.10.2209

Release 6.3.6.2484

Choose a tag to compare

@credfeto credfeto released this 15 Jul 22:16
3d99b21

Changed

  • SDK - Updated DotNet SDK to 10.0.302
  • Dependencies - Updated FunFair.CodeAnalysis to 7.2.8.2196
  • Dependencies - Updated Meziantou.Analyzer to 3.0.123
  • Dependencies - Updated SonarAnalyzer.CSharp to 10.29.0.143774
  • Dependencies - Updated Microsoft.Extensions to 10.8.0
  • Dependencies - Updated NSubstitute to 6.0.0