You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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