镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

fix(mocks): report TM006 instead of CS1729 for unsubclassable classes - #6501

Merged
thomhurst merged 4 commits into
mainfrom
fix/6493-no-accessible-ctor
Jul 28, 2026
Merged

thomhurst merged 4 commits into
mainfrom
fix/6493-no-accessible-ctor

Conversation

@thomhurst

Copy link
Copy Markdown
Owner

Fixes #6493

Problem

T.Mock() on a class whose constructors are all inaccessible produced:

QueueRuntimeProperties_MockImplFactory.g.cs(15,18): error CS1729:
'QueueRuntimeProperties' does not contain a constructor that takes 0 arguments

MemberDiscovery.DiscoverConstructors only collects accessible constructors, so the model ended up with an empty Constructors array and MockFactoryBuilder.GenerateConstructorDispatch fell through to new XMockImpl(engine). The impl derives from the target, and its implicit base() call has nothing to bind to. The error pointed into generated code with no link back to the call site.

Such a type genuinely cannot be mocked: every subclass constructor must chain to a base constructor, so with all of them private (or internal in another assembly) no subclass can be declared at all. The right outcome is a clear diagnostic, not generated code that cannot compile.

Fix

  • MockTypeModel.LacksAccessibleConstructor — true for a class target with no chainable constructor.
  • MockGenerator skips impl/factory/members for those targets and emits only the static Mock() entry point, so the call site still binds and the diagnostic below is the single error the user sees.
  • New TM006 + InaccessibleConstructorMockAnalyzer, reported at the call site for Mock.Of<T>(), Mock.Wrap<T>() and the generated T.Mock() form. The message points at the library's own factory (e.g. Azure's ServiceBusModelFactory) as the way to build such a value.

Protected and protected-internal constructors remain chainable — the generated impl derives from the target — so abstract classes are unaffected. Sealed and value types are left to TM001/TM002 rather than double-reported.

Tests

tests/TUnit.Mocks.Analyzers.Tests/InaccessibleConstructorMockAnalyzerTests.cs — 9 cases: private-only ctor via all three entry points, plus non-reporting cases for public / implicit parameterless / protected / same-assembly internal constructors, interfaces, and sealed types.

Analyzer tests: 39 passed. TUnit.Mocks.Tests: 1160 passed. Generator snapshots: 80 passed, unchanged.

@greptile-apps

greptile-apps Bot commented Jul 28, 2026 •

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR replaces generated-code constructor failures with a call-site diagnostic for classes that cannot be subclassed.

  • Adds TM006 and analyzes Mock.Of, Mock.Wrap, and generated static Mock entry points.
  • Skips implementation and factory generation when no chainable constructor exists while retaining the static entry-point stub.
  • Adds analyzer coverage for constructor accessibility and updates the cross-assembly analyzer verifier documentation.

Confidence Score: 3/5

The PR is not yet safe to merge because generated Mock entry-point matching can still apply TM006 to unrelated consumer code.

The analyzer continues to identify generated entry points through a spoofable namespace and containing-type suffix, then treats the invocation receiver as a mock target and can emit a compilation-blocking diagnostic.

Files Needing Attention: src/TUnit.Mocks.Analyzers/InaccessibleConstructorMockAnalyzer.cs

Important Files Changed

Filename Overview
src/TUnit.Mocks.Analyzers/InaccessibleConstructorMockAnalyzer.cs Adds TM006 target resolution and constructor eligibility checks; the previously reported generated-entry identity issue remains unresolved.
src/TUnit.Mocks.Analyzers/Rules.cs Defines the TM006 error descriptor and guidance.
src/TUnit.Mocks.SourceGenerator/MockGenerator.cs Emits only the static mock entry-point stub for classes lacking an accessible constructor.
src/TUnit.Mocks.SourceGenerator/Models/MockTypeModel.cs Adds the model predicate used to identify class targets without discovered constructors.
tests/TUnit.Mocks.Analyzers.Tests/InaccessibleConstructorMockAnalyzerTests.cs Covers inaccessible and chainable constructor cases across the supported mock entry points.
tests/TUnit.Mocks.Analyzers.Tests/Verifiers/CSharpAnalyzerVerifier`1.cs Clarifies cross-assembly accessibility coverage in the verifier documentation.

Reviews (4): Last reviewed commit: "fix(mocks): report TM006 for the multi-t..." | Re-trigger Greptile

@thomhurst

Copy link
Copy Markdown
Owner Author

@claude @codex could we use UnsafeAccessor to allow mocking these? It would be good if we could still actually mock them - unsafe accessory gives us reflection-like access, but should also work for aot?

@chatgpt-codex-connector

Copy link
Copy Markdown

To use Codex here, create an environment for this repo.

@claude

claude Bot commented Jul 28, 2026 •

Copy link
Copy Markdown
Contributor

Claude finished @thomhurst's task in 1m 58s —— View job


Tasks

  • Read the trigger comment and understand the question
  • Review current mock architecture (MockGenerator, MockTypeModel.LacksAccessibleConstructor, InaccessibleConstructorMockAnalyzer)
  • Check whether Mock.Wrap<T>() also relies on subclassing
  • Post final analysis

Answer: UnsafeAccessor doesn't fix this specific case

I looked at how the generated mock is built (MockImplBuilder.cs:44, :104): both Mock.Of<T>() and Mock.Wrap<T>() emit a file sealed class XMockImpl : T — a genuine subclass of the target, so overridden virtual members actually intercept calls. That's the crux of why this doesn't extend to UnsafeAccessor.

UnsafeAccessor lets your own code call an otherwise-inaccessible member (private ctor/method/field) via a compiler/runtime-generated stub — it's a member-access bypass, and it works great for constructing a standalone instance of a type whose constructors are all private.

But that's not what's needed here. The problem isn't "call the private constructor" — it's that XMockImpl's own constructor is itself a constructor of a type deriving from T, and every derived-type constructor must chain to a T constructor as part of its own definition (base(...)). That chaining call is checked for accessibility by the CLR the same way any other call is (this isn't just a C# compiler rule — it's enforced by the type system, because constructing a Derived requires initializing the Base slice in-place as part of the same object). UnsafeAccessor generates a separate stub method that returns a new, standalone T instance — it has no way to serve as the implicit base-chain call inside XMockImpl's constructor. There's no C# (or verifiable IL) syntax that says "construct my base part via this arbitrary accessor instead of an accessible base constructor."

So: if a class truly has zero constructor a derived type could reach (all private, or internal from another assembly), no subclass of it can exist, full stop — not via reflection, not via UnsafeAccessor, not by hand-writing the IL. The only way around that is unverifiable IL emission (Reflection.Emit with skip-visibility trust), which isn't AOT-compatible and isn't something we'd want to ship anyway.

Where UnsafeAccessor could help is a fundamentally different feature: constructing a real, non-overridable instance of such a type (bypassing ctor visibility) instead of a mock — useful for a "just give me a working instance to pass around" case, but that's not mocking (no virtual-member interception), so it doesn't replace the diagnostic here. It'd be a separate, additive feature if there's appetite for it (e.g. Mock.Wrap already requires a real instance to be passed in — for types like QueueRuntimeProperties where even that can't be constructed by user code, an UnsafeAccessor-based helper could produce the real instance to wrap, if wrapping without overriding is still useful). That's out of scope for this PR but could be a good follow-up issue if you want the "still get a real object, just can't override its methods" experience for these specific unmockable types.

For this PR, TM006 (reporting at the call site instead of a broken CS1729 in generated code) remains the right fix for the actual bug.

@claude claude Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Review

Good fix overall — replacing a confusing generated-code CS1729 with a targeted diagnostic at the call site is the right shape for this problem, and the entry-point coverage (Mock.Of<T>(), Mock.Wrap<T>(), generated T.Mock()) plus the sealed/struct double-report guard is well thought through.

One correctness gap and one coverage gap worth addressing before merge:

1. Analyzer's chainability check diverges from the generator's — reintroduces the same failure mode for a narrower case

InaccessibleConstructorMockAnalyzer.IsChainable (src/TUnit.Mocks.Analyzers/InaccessibleConstructorMockAnalyzer.cs:124-139) only checks a constructor's own DeclaredAccessibility + assembly visibility. But the generator's real notion of "usable constructor" — MemberDiscovery.DiscoverConstructors → IsMemberAccessible → AreMemberSignatureTypesAccessible / IsTypeAccessible (src/TUnit.Mocks.SourceGenerator/Discovery/MemberDiscovery.cs:848-876, 553-634) — also requires every constructor parameter type to be accessible from the compilation assembly.

Concretely: a class with a single public constructor whose parameter type is internal in another assembly (a real pattern — some libraries use an internal "capability" parameter to gate public-looking constructors) will:

  • Generator side: DiscoverConstructors filters that ctor out (param type inaccessible) → Constructors.Length == 0 → LacksAccessibleConstructor == true → only the static stub is emitted, which forwards to Mock.Of<T>().
  • Analyzer side: IsChainable sees a public ctor and returns true → no TM006 is reported.
  • Runtime: Mock.Of<T>() finds no registered factory (MockRegistry.TryGetFactory fails, src/TUnit.Mocks/Mock.cs:70-77) and throws InvalidOperationException: No mock factory registered for type ....

So for this case the user gets exactly the kind of unclear, disconnected-from-the-call-site failure this PR sets out to eliminate — just moved from a compile-time CS1729 to a runtime exception, with no analyzer warning in between.

This is a structural risk, not just a missed edge case: the analyzer and generator now each hand-maintain their own copy of "is this constructor chainable," and they've already drifted apart on day one. Rather than porting AreMemberSignatureTypesAccessible/IsTypeAccessible into the analyzer as a second copy, it'd be worth extracting the shared predicate (constructor accessibility + parameter-type accessibility) into one place both projects reference — e.g. a small shared source file/project linked into both TUnit.Mocks.Analyzers and TUnit.Mocks.SourceGenerator (both are already netstandard2.0 Roslyn components, so linking a shared .cs file via <Compile Include> costs nothing). That guarantees the two can't silently diverge again the next time either side's logic changes.

2. The primary target scenario (T.Mock()) isn't actually tested against the real generated shape

Generated_Static_Mock_Entry_Point_Reports_TM006 (tests/TUnit.Mocks.Analyzers.Tests/InaccessibleConstructorMockAnalyzerTests.cs:274-306) says in its own comment that the real generated entry point is a C# 14 extension(...) block (confirmed in MockStaticExtensionBuilder.BuildCore, src/TUnit.Mocks.SourceGenerator/Builders/MockStaticExtensionBuilder.cs:100-106), but the test harness's Roslyn version doesn't support extension blocks yet, so the test substitutes a plain static method with a matching name/namespace/staticness instead.

That's a reasonable stopgap, but it means ResolveMockTarget's namespace-based matching (chosen specifically to cope with the "compiler-synthesised nested extension type" shape, per its own comment) is unverified against the actual symbol shape Roslyn produces for extension members — which can differ from a plain static method (synthesized containing/marker types, ReducedFrom, etc.). Since this is the exact path from the original bug report (T.Mock() → CS1729), it'd be worth locking it in with real coverage — e.g. an end-to-end test that runs the actual source generator output through the analyzer, or bumping/adding a second test harness on a newer Roslyn/LangVersion that supports extension syntax — rather than relying on manual verification (per the PR description) staying correct across future refactors.

Nothing else stood out — Rules.cs addition, the sealed/value-type exclusion to avoid double-reporting with TM001/TM002, and the LacksAccessibleConstructor model property all look correct and well-documented.

@thomhurst

Copy link
Copy Markdown
Owner Author

Thanks — finding 1 is a real divergence and is fixed in 2985b13. One correction on the worked example, and a push-back on the extraction.

1. Divergence fixed; the specific repro isn't constructible though. IsChainable now applies the same signature-type rule as AreMemberSignatureTypesAccessible / IsTypeAccessible (arrays, generic type arguments and pointers included), so the analyzer and DiscoverConstructors can no longer disagree.

I did try to pin it with the scenario you described — a public constructor whose parameter type is internal in another assembly — and it can't exist: the declaring assembly won't compile it.

Library.cs(9,16): error CS0051: Inconsistent accessibility: parameter type 'Capability' is less
accessible than method 'GatedService.GatedService(Capability)'

C# requires a constructor to be no more accessible than its parameter types, so for constructors the parameter-type gate can only fire where the constructor itself is already gated (internal, private protected) and therefore already reported. I kept the check anyway — it costs nothing, removes the divergence, and the rule is shared with member signatures where it does bite — but I couldn't write a failing test for it, so the test I added instead is the cross-assembly internal constructor: the actual Azure QueueRuntimeProperties shape, which the previous same-assembly-private tests could only approximate. Plus a public-constructor-with-public-parameter case guarding the new check against false positives.

2. On the real T.Mock() extension shape. Agreed it's the weakest point, and I'd take real coverage if it were available. It isn't within this PR: the analyzer test harness resolves Microsoft.CodeAnalysis.CSharp.Workspaces 4.12.0 / Microsoft.CodeAnalysis.Common 4.7.0 from Directory.Packages.props, which is repo-wide and also the floor the shipped analyzer and generator compile against. Bumping it to a Roslyn that parses extension(...) blocks raises the minimum Roslyn for consumers, which I don't think belongs in a bug-fix PR. Running generator output through the analyzer in TUnit.Mocks.SourceGenerator.Tests hits the same pinned Roslyn, and the only real-SDK project (TUnit.Mocks.Tests) can't host a TM006 trigger because TM006 is an error and would break the build.

What I do have is a real-SDK verification: with the branch built into TUnit.Mocks.Tests, both entry points report and the CS1729 is gone —

Issue6493Repro.cs(17,20): error TM006: Cannot mock 'NoAccessibleCtor' ...   // NoAccessibleCtor.Mock()
Issue6493Repro.cs(18,21): error TM006: Cannot mock 'NoAccessibleCtor' ...   // Mock.Of<NoAccessibleCtor>()

That's also what drove the namespace-based matching in the first place: matching on ContainingType.Name.EndsWith("_MockStaticExtension") did not fire against the real extension-block symbol, only the namespace check did. Happy to open a follow-up issue for a newer-Roslyn analyzer test harness if you'd like that tracked.

Analyzer tests 41 passed, TUnit.Mocks.Tests 1160, generator snapshots 80.

@thomhurst

Copy link
Copy Markdown
Owner Author

could we use UnsafeAccessor to allow mocking these? ... unsafe accessor gives us reflection-like access, but should also work for aot?

I tested both halves of this against the real Azure package. Short answer: it can't unlock mocking, but it can unlock a genuinely useful stub/value-builder — and yes, it's AOT-safe.

It doesn't help mocking, for two independent reasons.

1. The blocker is subclassing, not construction. TUnit.Mocks intercepts by emitting a subclass, and every derived constructor must chain to an accessible base constructor. UnsafeAccessorKind.Constructor produces a factory-shaped method (it newobjs and returns an instance) — it can't stand in for a base(...) initializer, and the generator emits C#, which always emits that call. So the impl still won't compile:

Sub.cs(7,12): error CS1729: 'QueueRuntimeProperties' does not contain a constructor that takes 0 arguments

2. Even with a subclass there'd be nothing to intercept. Reading the metadata for QueueRuntimeProperties:

TYPE QueueRuntimeProperties attrs=Public, BeforeFieldInit
  methods: virtual=0 nonvirtual=23
  properties: Name:Assembly, TotalMessageCount:Assembly, ActiveMessageCount:Assembly, ... (all internal setters)

Zero virtual members. A subclass could override nothing, so .Returns(...) would have no slot to attach to regardless of how we got an instance.

Where it does pay off. What people actually want from these types is a value to hand back from a mocked GetQueueRuntimePropertiesAsync. UnsafeAccessor does that cleanly — internal constructor plus internal setters, no backing-field name guessing:

[UnsafeAccessor(UnsafeAccessorKind.Constructor)]
static extern QueueRuntimeProperties NewProps(string name);

[UnsafeAccessor(UnsafeAccessorKind.Method, Name = "set_ActiveMessageCount")]
static extern void SetActive(QueueRuntimeProperties props, long value);

var p = NewProps("my-queue");
SetActive(p, 42);
// prints: OK Name=my-queue ActiveMessageCount=42

That ran clean against Azure.Messaging.ServiceBus 7.20.2. It's AOT-safe — the runtime/ILC binds these at link time, which is exactly why it's the sanctioned replacement for private reflection.

Caveats worth pricing in before committing to it: it needs #if NET8_0_OR_GREATER (TUnit.Mocks also targets netstandard2.0, and consumer-side TFM guards matter here — see the net8.0 issue on #6503); it deliberately bypasses accessibility, so a library renaming an internal member breaks consumers at runtime rather than compile time; and the result is a stub, not a mock — no verification, no setups.

So I'd frame it as a separate feature — something like T.Stub() returning a configurable instance of an otherwise-unconstructible type — rather than something that changes TM006. TM006 is still the right answer for T.Mock() on these types, because mocking them genuinely cannot work. Happy to open an issue for the stub feature with the above as the feasibility evidence if you want to pursue it.

@claude

claude Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Review

Re-reviewed at c5b3c2c (latest commit). Both findings from the previous review round are properly addressed: the analyzer's IsChainable now mirrors the generator's parameter-type-accessibility rule (2985b13), and the namespace-suffix walk-up in IsGeneratedStaticEntryPoint correctly matches the real generated container name ({name}_MockStaticExtension, per MockStaticExtensionBuilder.BuildCore) rather than a plain static-method shape. Good pushback on the "public ctor with internal parameter type" scenario too — that's correctly unconstructible in C#.

One new gap worth fixing before merge:

TM006 doesn't cover the multi-type Mock.Of<T1, T2>() family

ResolveMockTarget only resolves a target when the invoked method has exactly one type argument:

return methodSymbol.TypeArguments.Length == 1
    ? methodSymbol.TypeArguments[0] as INamedTypeSymbol
    : null;

Mock.Of<T1, T2>(), Of<T1, T2, T3>() and Of<T1, T2, T3, T4>() are real public overloads (src/TUnit.Mocks/Mock.cs:123-181), and T1 — the first type argument — is always the concrete/primary type being subclassed; T2..T4 are interfaces layered on top (MockTypeDiscovery validates this and reuses singleTypeModel.Constructors for the multi-type model). So when T1 lacks an accessible constructor, the generator correctly skips codegen (same LacksAccessibleConstructor branch), but the analyzer silently returns null for these calls and reports nothing. At runtime, Mock.Of<T1,T2>() → OfMulti<T1> finds no registered factory and throws InvalidOperationException: No mock factory registered for type ... — which is exactly the "failure disconnected from the call site" problem this PR sets out to eliminate, just shifted from a compile-time CS1729 to a runtime exception for this one entry point.

Fix is small: use methodSymbol.TypeArguments[0] whenever there's at least one type argument, instead of requiring exactly one. Worth a test case alongside the existing 9 (Mock.Of<RuntimeProperties, ISomeInterface>() reporting TM006).

Minor (non-blocking): naming-convention-based generated-code detection

IsGeneratedStaticEntryPoint identifies "did the generator emit this Mock()" by string-matching a namespace + _MockStaticExtension suffix convention. It's correctly aligned with today's generator output, but nothing enforces that the two stay in sync — a future rename of the suffix in MockStaticExtensionBuilder silently reopens the false-negative gap Greptile flagged, and (in the other direction) a consumer type that happens to match the convention still spoofs a diagnostic. Since the generator and analyzer are both authored in this repo, a compiler-emitted marker (e.g. an internal marker attribute or [EditorBrowsable(Never)]-style sentinel stamped on the generated extension class) would let the analyzer check "is this symbol actually ours" definitively instead of by convention — removing the coupling-by-string-literal between the two projects. Not blocking; today's approach is a reasonable pragmatic tradeoff given the Roslyn-version constraint already discussed in this thread.

Nothing else stood out — LacksAccessibleConstructor gating (including its interaction with IsWrapMock, which also sets IsPartialMock = true and hits the same branch first) is correctly ordered, and the sealed/value-type double-report guard is unchanged and correct.

A class whose constructors are all private, or internal in another
assembly, cannot be subclassed at all — every subclass constructor must
chain to a base constructor. The generator emitted the impl regardless,
so mocking e.g. Azure.Messaging.ServiceBus.Administration.QueueRuntimeProperties
failed with a bare CS1729 pointing into generated code, with nothing to
tie it back to the offending call site.

Skip generation for such targets (keeping only the static Mock() entry
point so the call site still binds) and add TM006, reported at the call
site for Mock.Of<T>(), Mock.Wrap<T>() and the generated T.Mock() form.
Protected and protected-internal constructors stay chainable, so abstract
classes are unaffected.

Fixes #6493
… rule

Review finding: the analyzer only inspected a constructor's own
accessibility, while MemberDiscovery.DiscoverConstructors also requires
every parameter type to be reachable. The analyzer now applies the same
signature-type rule (arrays, generic arguments and pointers included), so
the two cannot report different answers for the same target.

Also adds cross-assembly coverage — an internal constructor in a
referenced assembly is the actual shape from the report, and the previous
tests could only express the same-assembly private case.
Review finding: matching every static Mock() in namespace TUnit.Mocks let
a consumer-declared method of that shape draw a compilation-blocking
diagnostic. Probed the real symbol shape against Roslyn 4.14 — the
generated member's containing type is the synthesised, unnamed extension
type, whose own containing type is the *_MockStaticExtension class — and
the match now walks out to that class.

Verified against a real-SDK build that both entry points still report:

  Issue6493Repro.cs(16,17): error TM006: ... // NoAccessibleCtorProbe.Mock()
  Issue6493Repro.cs(17,17): error TM006: ... // Mock.Of<NoAccessibleCtorProbe>()

The analyzer-harness test for that path now asserts the negative case it
can express; the previous one stood in a plain static method and was
pinning the overbroad behaviour.
Of<T1, T2>() through Of<T1, T2, T3, T4>() return Mock<T1>, and
MockTypeDiscovery reuses T1's constructors for the multi-type model, so
the generator skips generation for the same LacksAccessibleConstructor
case. The analyzer only resolved a target for exactly one type argument,
so those calls reported nothing and failed at runtime with "No mock
factory registered" instead of at the call site.
@thomhurst

Copy link
Copy Markdown
Owner Author

Fixed in 9c17356. The multi-type gap is real — verified end to end rather than taken on the review's word:

  • Mock.Of<T1, T2>() … Of<T1, T2, T3, T4>() all return Mock<T1> and route to OfMulti<T1> (src/TUnit.Mocks/Mock.cs:123-181).
  • MockTypeDiscovery builds the multi-type model with Constructors = singleTypeModel.Constructors (Discovery/MockTypeDiscovery.cs:192), i.e. T1's constructors verbatim — so LacksAccessibleConstructor fires on exactly the same condition as the single-type model and generation is skipped.
  • The analyzer's TypeArguments.Length == 1 gate therefore let precisely those calls through with no diagnostic, converting a compile-time error into a runtime InvalidOperationException.

ResolveMockTarget now takes TypeArguments[0] whenever there's at least one type argument, with a comment recording why the first argument is the constructor-bearing target for every overload. Added Multi_Type_Of_With_Inaccessible_Primary_Constructor_Reports_TM006 covering Mock.Of<RuntimeProperties, ISomeInterface>(); the suite is 12/12 green.

On the marker-attribute suggestion for IsGeneratedStaticEntryPoint: agreed in principle, but it's a cross-project contract change (the generator would have to stamp a marker TUnit.Mocks declares, and the analyzer resolve it by symbol) that touches every generated static extension and its snapshots. That's a wider change than this fix warrants — leaving the convention match, which is exercised by Unrelated_Static_Mock_Method_Does_Not_Report.

Also rebased onto main to clear the conflict (Rules.cs — TM006 and TM007 landed in the same slot; both descriptors kept).

@claude

claude Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Review

Re-reviewed at 9c17356 (latest commit). This addresses the only outstanding gap from the previous round.

Multi-type Mock.Of<T1, T2>() family now reports TM006. ResolveMockTarget (src/TUnit.Mocks.Analyzers/InaccessibleConstructorMockAnalyzer.cs:75-82) now accepts TypeArguments.Length >= 1 instead of requiring exactly one, taking TypeArguments[0] as the target. Verified this is correct against the actual overload set in src/TUnit.Mocks/Mock.cs:123-181: every Of<T1, T2>() … Of<T1, T2, T3, T4>() overload returns Mock<T1>, and MockTypeDiscovery reuses T1's constructors for the multi-type model — so T1 is the right (and only) constructor-bearing target regardless of arity. IsMockEntryPointMethod still scopes this to Mock/MockRepository.Of/Wrap generic methods in the TUnit.Mocks namespace, so widening == 1 to >= 1 doesn't risk false positives on unrelated generic calls.

Ran the new test (Multi_Type_Of_With_Inaccessible_Primary_Constructor_Reports_TM006) locally across net8.0/net9.0/net10.0 — all pass.

No new issues found. The remaining architectural note from the previous round (naming-convention-based detection in IsGeneratedStaticEntryPoint, coupling the analyzer to the generator's _MockStaticExtension suffix by string) was already flagged as non-blocking and still stands as a reasonable tradeoff given the pinned-Roslyn constraint discussed earlier in this thread — no action needed for this PR.

Good to merge from my side.

github-actions Bot pushed a commit to BenjaminMichaelis/DotnetTemplates that referenced this pull request Oct 5, 2026
Updated
[Microsoft.Testing.Extensions.CodeCoverage](https://github.com/microsoft/codecoverage)
from 18.7.0 to 18.11.2.

<details>
<summary>Release notes</summary>

_Sourced from [Microsoft.Testing.Extensions.CodeCoverage's
releases](https://github.com/microsoft/codecoverage/releases)._

No release notes found for this version range.

Commits viewable in [compare
view](https://github.com/microsoft/codecoverage/commits).
</details>

Updated [TUnit](https://github.com/thomhurst/TUnit) from 1.45.29 to
1.72.16.

<details>
<summary>Release notes</summary>

_Sourced from [TUnit's
releases](https://github.com/thomhurst/TUnit/releases)._

## 1.72.16

<!-- Release notes generated using configuration in .github/release.yml
at v1.72.16 -->

## What's Changed
### Other Changes
* docs: add Moq, NSubstitute, and FakeItEasy migration guides for
TUnit.Mocks by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6951
### Dependencies
* chore(deps): update dependency azure.storage.blobs to 12.30.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6945
* chore(deps): update tunit to 1.72.10 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6946
* chore(deps): update dependency mockolate to 3.5.2 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6949


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.72.10...v1.72.16

## 1.72.10

<!-- Release notes generated using configuration in .github/release.yml
at v1.72.10 -->

## What's Changed
### Other Changes
* fix(source-gen): adapt ValueTask<T> test results by @​zion-sati in
https://github.com/thomhurst/TUnit/pull/6930
### Dependencies
* chore(deps): update tunit to 1.72.4 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6941
* chore(deps): update aspire to 13.6.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6940
* chore(deps): update verify to 33.2.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6943
* chore(deps): update dependency awssdk.sqs to 4.0.100.15 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6944

## New Contributors
* @​zion-sati made their first contribution in
https://github.com/thomhurst/TUnit/pull/6930

**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.72.4...v1.72.10

## 1.72.4

<!-- Release notes generated using configuration in .github/release.yml
at v1.72.4 -->

## What's Changed
### Other Changes
* fix(source-gen): stop parameter resolver keeping every non-public
test-class method (IL2111) by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6937
### Dependencies
* chore(deps): update tunit to 1.72.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6934


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.72.0...v1.72.4

## 1.72.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.72.0 -->

## What's Changed
### Other Changes
* perf(source-gen): resolve parameter reflection info through a shared
runtime helper by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6923
* perf(analyzers): trim remaining analyzer hot-path symbol lookups and
binds by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6928
* perf(mocks): move shared MockCall wrapper plumbing into runtime base
classes by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6929
* perf(source-gen): close incremental caching gaps in static property
and property injection generators by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6925
* perf(source-gen): stop InfrastructureGenerator pinning an old
Compilation by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6926
* perf(assertions-analyzers): cache assertion symbols and cut per-call
work by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6927
* perf(source-gen): emit hooks per class with direct, non-async bodies
by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6924
* test: fix flaky ObjectInitializer continuation-thread test by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6932
* fix: CI flakes from leaked hook contexts, ActivityCollector race and
Repro5700 rendezvous by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6933
* fix(aspnetcore): honor WebApplicationFactoryClientOptions in
CreateClient by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6931
### Dependencies
* chore(deps): update tunit to 1.71.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6920


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.71.0...v1.72.0

## 1.71.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.71.0 -->

## What's Changed
### Other Changes
* perf: lighter per-test trace bookkeeping for the HTML report (-12%
allocations at 10k tests) by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6910
* perf(html-report): parallel report serialization + optimized hot
writers (-26% end-of-session time) by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6911
* perf: emit source-generated test types after user code (Defender scan
5s → 0.2s at 10k tests) by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6908
* perf(source-gen): bound generated test-entry methods (data-driven
startup JIT -45%) by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6909
* fix: avoid blocking waiting callers during IAsyncInitializer
initialization by @​Sing303 in
https://github.com/thomhurst/TUnit/pull/6906
* perf(analyzers): cut binding and symbol lookups in analyzer hot paths
(TUnit.Analyzers -89% on TestProject) by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6917
* fix(source-gen): model equality covers every emitted field;
infrastructure refreshes on reference changes by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6912
* perf(mocks): memoize generator discovery per compilation and decouple
emitted source from call-site locations by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6913
* fix(packaging): skip the source generator when disabled and replace
the broken Polyfill injection by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6915
* refactor(analyzers): address review feedback from #​6917 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6919
* perf(source-gen): remove whole-compilation scans from static property,
property injection and AOT converter generators by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6914
* perf(assertions-source-gen): make assertion generators properly
incremental by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6916
* perf(source-gen): make TestMetadataGenerator pipeline values equatable
by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6918
### Dependencies
* chore(deps): update dependency polyfill to 11.4.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6900
* chore(deps): update dependency polyfill to 11.4.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6899
* chore(deps): update dependency tunit.aspire to 1.7* by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6901
* chore(deps): update tunit to 1.7* by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6902
* chore(deps): update dependency coverlet.collector to 10.1.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6905
* chore(deps): update dependency nunit to v5 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6903


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.70.1...v1.71.0

## 1.70.1

<!-- Release notes generated using configuration in .github/release.yml
at v1.70.1 -->

## What's Changed
### Other Changes
* fix: don't run DedicatedThreadExecutor continuations inline on the
dedicated thread by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6898


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.70.0...v1.70.1

## 1.70.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.70.0 -->

## What's Changed
### Other Changes
* feat: clear parallel constraints and limiter during test registration
by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6897
* fix(mocks): emit valid lambdas for Task/ValueTask-returning delegate
mocks by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6896
### Dependencies
* chore(deps): update tunit to 1.69.24 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6893


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.69.24...v1.70.0

## 1.69.24

<!-- Release notes generated using configuration in .github/release.yml
at v1.69.24 -->

## What's Changed
### Other Changes
* fix: skip Ctrl+C handling where Console.CancelKeyPress is unsupported
by @​glennawatson in https://github.com/thomhurst/TUnit/pull/6889
### Dependencies
* chore(deps): update verify to 33.1.5 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6891
* chore(deps): update tunit to 1.69.21 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6890


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.69.21...v1.69.24

## 1.69.21

<!-- Release notes generated using configuration in .github/release.yml
at v1.69.21 -->

## What's Changed
### Other Changes
* fix: preserve JUnit results after session cancellation by @​Sing303 in
https://github.com/thomhurst/TUnit/pull/6882
* feat: warn when setup hooks pass the test execution token by @​Sing303
in https://github.com/thomhurst/TUnit/pull/6883
* fix: complete DedicatedThreadExecutor tests only after CleanUp()
returns by @​glennawatson in
https://github.com/thomhurst/TUnit/pull/6886
### Dependencies
* chore(deps): update tunit to 1.69.16 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6881

## New Contributors
* @​glennawatson made their first contribution in
https://github.com/thomhurst/TUnit/pull/6886

**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.69.16...v1.69.21

## 1.69.16

<!-- Release notes generated using configuration in .github/release.yml
at v1.69.16 -->

## What's Changed
### Other Changes
* fix: preserve TRX results when session cleanup fails by @​Sing303 in
https://github.com/thomhurst/TUnit/pull/6879
### Dependencies
* chore(deps): update tunit to 1.69.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6864
* chore(deps): update dependency messagepack to 3.1.10 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6866
* chore(deps): update dependency dompurify to v3.4.16 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6867
* chore(deps): update dependency serialize-javascript to v7.1.2 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6868
* chore(deps): update dependency azure.data.tables to 12.13.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6870
* chore(deps): update dependency microsoft.playwright to 1.63.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6871
* chore(deps): update verify to 33.1.2 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6872
* chore(deps): update dependency verify.tool to v0.9.2 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6873
* chore(deps): update verify to 33.1.3 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6874
* chore(deps): update verify to 33.1.4 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6876
* chore(deps): update dependency moq to 4.21.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6877
* chore(deps): bump image-size from 2.0.2 to 2.0.4 in /docs by
@​dependabot[bot] in https://github.com/thomhurst/TUnit/pull/6878

## New Contributors
* @​Sing303 made their first contribution in
https://github.com/thomhurst/TUnit/pull/6879

**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.69.0...v1.69.16

## 1.69.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.69.0 -->

## What's Changed
### Other Changes
* feat(templates): add enableDotCover flag (#​6714) by @​ForNeVeR in
https://github.com/thomhurst/TUnit/pull/6844
* fix: don't request semantic models for attribute syntax from other
compilations (DevKit crash) by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6855
* fix(ci): restore net472 PublicAPI tests on Windows by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6857
* perf(html-report): stream report JSON through pooled chunks and
overlap sidecar serialization by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6860
* chore(renovate): cap Microsoft.Build packages below 18.10.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6863
* perf: shrink generated per-class test source static constructors (~40%
less startup JIT) by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6859
* refactor: remove unreachable decimal source-text path from
GenerateAttributeInstantiation by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6856
* perf: cut per-test allocations in discovery and execution (-61% at 10k
tests) by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6861
* perf: stop hashing per-test event receivers during registration
(data-driven tests 2.9x faster at 10k) by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6858
* perf(analyzers): cut TUnit analyzer build time ~60% on large test
projects by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6862
### Dependencies
* chore(deps): update opentelemetry to 1.19.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6838
* chore(deps): update dependency opentelemetry.instrumentation.runtime
to 1.19.0 by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6840
* chore(deps): update tunit to 1.68.17 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6839
* chore(deps): update verify to 33.1.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6843
* chore(deps): update verify to 33.1.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6847
* chore(deps): update opentelemetry to 1.19.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6850
* chore(deps): update dependency grpc.core.api to 2.84.0 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6851
* chore(deps): update dependency stackexchange.redis to 3.3.1 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6853
* chore(deps): update dependency polyfill to 11.4.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6841
* chore(deps): update dependency polyfill to 11.4.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6842

## New Contributors
* @​ForNeVeR made their first contribution in
https://github.com/thomhurst/TUnit/pull/6844

**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.68.17...v1.69.0

## 1.68.17

<!-- Release notes generated using configuration in .github/release.yml
at v1.68.17 -->

## What's Changed
### Other Changes
* fix(mocks): emit init accessors for init-only properties and indexers
by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6833
* fix(mocks): let one type be mocked regularly and wrapped in one
compilation by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6835
* fix(mocks): keep editors in sync with publicized project references
(#​6836) by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6837
### Dependencies
* chore(deps): update tunit to 1.68.4 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6824
* chore(deps): update mstest to 4.4.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6825
* chore(deps): update microsoft.testing by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6717
* chore(deps): update verify to v33 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6794
* chore(deps): update dependency stackexchange.redis to 3.2.15 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6827
* chore(deps): update dependency messagepack to 3.1.9 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6828
* chore(deps): update dependency stackexchange.redis to 3.3.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6831
* chore(deps): update opentelemetry to 1.19.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6832


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.68.4...v1.68.17

## 1.68.4

<!-- Release notes generated using configuration in .github/release.yml
at v1.68.4 -->

## What's Changed
### Other Changes
* Add installable TUnit documentation routing skill by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6823
### Dependencies
* chore(deps): update tunit to 1.68.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6819
* chore(deps): update dependency mockolate to 3.5.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6822


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.68.0...v1.68.4

## 1.68.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.68.0 -->

## What's Changed
### Other Changes
* chore: switch to fillable checkboxes for issue templates by
@​radmorecameron in https://github.com/thomhurst/TUnit/pull/6795
* Add functionality to TUnit.Playwright to easily record videos for
tests by @​dahlsailrunner in
https://github.com/thomhurst/TUnit/pull/6799
* docs: clarify thread pool usage in parallel tests by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6817
* Fix mocking events with ref struct arguments by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6814
* Fix TUnit0023 false positives for disposal through casts by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6818
### Dependencies
* chore(deps): update tunit to 1.67.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6793
* chore(deps): update xunit to 4.0.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6796
* chore(deps): update dependency bunit to 2.11.3 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6800
* chore(deps): update dependency stackexchange.redis to 3.2.1 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6801
* chore(deps): update dependency polly to 8.8.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6805
* chore(deps): update dependency dotnet-sdk to v10 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6803
* chore(deps): update dependency masstransit to 9.2.2 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6806
* chore(deps): update dependency awssdk.sqs to 4.0.100.14 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6807
* chore(deps): update dependency brace-expansion to v5.0.12 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6809
* chore(deps): update dependency microsoft.net.test.sdk to 18.10.1 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6811
* chore(deps): update aspire to 13.5.4 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6813

## New Contributors
* @​radmorecameron made their first contribution in
https://github.com/thomhurst/TUnit/pull/6795
* @​dahlsailrunner made their first contribution in
https://github.com/thomhurst/TUnit/pull/6799

**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.67.0...v1.68.0

## 1.67.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.67.0 -->

## What's Changed
### Other Changes
* docs: clarified and updated attributes comparison for xUnit 3 by
@​304NotModified in https://github.com/thomhurst/TUnit/pull/6774
* perf: read inline argument metadata without reflection by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6778
* perf: limit converter discovery to declarations by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6779
* perf: skip teardown analysis when no disposable members need cleanup
by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6780
* perf: avoid line allocations when writing generated source by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6781
* perf: avoid formatting interface names for data-source checks by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6782
* perf: skip unannotated property data-source candidates by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6784
* fix: fold inner exceptions into IDE test failure output by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6777
* perf: reuse argument-free attribute initializer text by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6788
* perf: extract test metadata in attribute transforms by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6789
* perf: skip receiver registration for ordinary objects by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6790
* perf: cache reporting properties on test contexts by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6791
* fix: preserve executor registration, limiter precedence, and timeout
classification by @​Nice3point in
https://github.com/thomhurst/TUnit/pull/6768
### Dependencies
* chore(deps): update tunit to 1.66.27 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6742
* chore(deps): update dependency bunit to 2.10.3 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6745
* chore(deps): update dependency imposter to 0.1.11 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6744
* chore(deps): update dependency microsoft.kiota.abstractions to 2.1.2
by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6747
* chore(deps): update dependency microsoft.templateengine.authoring.cli
to v10.0.401 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6750
* chore(deps): update dependency fsharp.core to 10.1.401 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6748
* chore(deps): update dependency
microsoft.templateengine.authoring.templateverifier to 10.0.401 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6751
* chore(deps): update dependency system.commandline to 2.0.12 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6752
* chore(deps): update dependency dotnet-sdk to v10.0.401 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6754
* chore(deps): update microsoft.extensions to 10.0.12 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6755
* chore(deps): update microsoft.aspnetcore to 10.0.12 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6753
* chore(deps): update dependency microsoft.entityframeworkcore to
10.0.12 by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6749
* chore(deps): update mcr.microsoft.com/dotnet/sdk docker tag to v11 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6756
* chore(deps): update dependency microsoft.net.test.sdk to 18.10.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6761
* chore(deps): update microsoft.extensions to 10.10.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6762
* chore(deps): update react to ^19.3.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6763
* chore(deps): update dependency awssdk.sqs to 4.0.100.13 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6764
* chore(deps): update dependency polyfill to 11.3.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6765
* chore(deps): update dependency polyfill to 11.3.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6766
* chore(deps): update dependency stackexchange.redis to 3.2.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6769
* chore(deps): update dependency microsoft.net.stringtools to 18.10.1 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6771
* chore(deps): update dependency dotnet-trace to v10.0.745401 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6773
* chore(deps): bump colord from 2.9.3 to 2.10.0 in /docs by
@​dependabot[bot] in https://github.com/thomhurst/TUnit/pull/6759
* chore(deps): bump joi from 17.13.4 to 17.13.7 in /docs by
@​dependabot[bot] in https://github.com/thomhurst/TUnit/pull/6758
* chore(deps): bump js-yaml from 4.3.1 to 4.3.2 in /docs by
@​dependabot[bot] in https://github.com/thomhurst/TUnit/pull/6757
* chore(deps): update dependency yaml to v2.9.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6785
* chore(deps): update verify to 32.0.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6786
* chore(deps): update dependency nunit.analyzers to 4.15.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6792

## New Contributors
* @​304NotModified made their first contribution in
https://github.com/thomhurst/TUnit/pull/6774
* @​Nice3point made their first contribution in
https://github.com/thomhurst/TUnit/pull/6768
 ... (truncated)

## 1.66.27

<!-- Release notes generated using configuration in .github/release.yml
at v1.66.27 -->

## What's Changed
### Other Changes
* fix(mocks): initialize mock state before base constructor callbacks by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6741
### Dependencies
* chore(deps): update tunit to 1.66.16 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6733
* chore(deps): update dependency testcontainers.postgresql to 4.15.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6736
* chore(deps): update dependency testcontainers.redis to 4.15.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6737
* chore(deps): update dependency testcontainers.kafka to 4.15.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6735
* chore(deps): update dependency mockolate to 3.5.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6739


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.66.16...v1.66.27

## 1.66.16

<!-- Release notes generated using configuration in .github/release.yml
at v1.66.16 -->

## What's Changed
### Other Changes
* fix: isolated name is lowercase (#​6727) by @​koryphaee in
https://github.com/thomhurst/TUnit/pull/6728
* fix: preserve concurrent Assert.Multiple failures by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6730
* fix: preserve original HTTP mock request content by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6731
### Dependencies
* chore(deps): update tunit to 1.66.10 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6726
* chore(deps): update dependency dompurify to v3.4.15 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6732


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.66.10...v1.66.16

## 1.66.10

<!-- Release notes generated using configuration in .github/release.yml
at v1.66.10 -->

## What's Changed
### Other Changes
* fix: restore null suppression for built-in assertion methods by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6725
### Dependencies
* chore(deps): update tunit to 1.66.8 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6724


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.66.8...v1.66.10

## 1.66.8

<!-- Release notes generated using configuration in .github/release.yml
at v1.66.8 -->

## What's Changed
### Other Changes
* fix(ci): make issue triage work for external reporters by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6720
* fix(ci): run code review on pull requests from forks by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6722
* fix: suppress nullability warnings after Should NotBeNull assertions
by @​mvanhorn in https://github.com/thomhurst/TUnit/pull/6700
* fix: Avoid HTML report CLI option clashes by @​mvanhorn in
https://github.com/thomhurst/TUnit/pull/6677
### Dependencies
* chore(deps): update tunit to 1.66.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6719
* chore(deps): update dependency microsoft.kiota.abstractions to 2.1.1
by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6721
* chore(deps): update dependency awssdk.sqs to 4.0.100.12 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6723


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.66.0...v1.66.8

## 1.66.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.66.0 -->

## What's Changed
### Other Changes
* Compile all C# documentation snippets by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6695
* Fix `Type` assignability assertions to evaluate represented type (not
`RuntimeType`) by @​thomhurst with @​Copilot in
https://github.com/thomhurst/TUnit/pull/6711
* Clarify ClassDataSource constructor requirements by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6716
* Add programmatic HTML reporting settings by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6699
* Fix timeout cancellation diagnostics by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6715
### Dependencies
* chore(deps): update tunit to 1.65.68 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6682
* chore(deps): update dependency verify.tool to v0.9.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6683
* chore(deps): update dependency mockolate to 3.4.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6685
* chore(deps): update dependency serialize-javascript to v7.1.1 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6687
* chore(deps): update dependency qs to v6.16.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6691
* chore(deps): update dependency system.reactive to v7 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6696
* chore(deps): update dependency imposter to 0.1.10 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6701
* chore(deps): update dependency microsoft.kiota.abstractions to 2.1.0
by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6704
* chore(deps): update mstest to 4.4.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6705
* chore(deps): update dependency dotnet-trace to v10 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6706
* chore(deps): update microsoft.testing by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6703
* chore(deps): update microsoft.testing by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6713
* chore(deps): bump fast-uri from 3.1.5 to 3.1.7 in /docs by
@​dependabot[bot] in https://github.com/thomhurst/TUnit/pull/6707


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.65.68...v1.66.0

## 1.65.68

<!-- Release notes generated using configuration in .github/release.yml
at v1.65.68 -->

## What's Changed
### Other Changes
* fix: convert foreign array element-wise for trailing array parameter
(#​6678) by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6681
### Dependencies
* chore(deps): update tunit to 1.65.63 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6672
* chore(deps): update aspire to 13.5.3 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6674
* chore(deps): update verify to v32 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6680


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.65.63...v1.65.68

## 1.65.63

<!-- Release notes generated using configuration in .github/release.yml
at v1.65.63 -->

## What's Changed
### Other Changes
* Fix mocking hidden generic interface methods by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6671
### Dependencies
* chore(deps): update aspire to 13.5.2 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6655
* chore(deps): update opentelemetry to 1.18.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6653
* chore(deps): update dependency azure.data.tables to 12.12.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6654
* chore(deps): update tunit to 1.65.51 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6661
* chore(deps): update dependency svgo to v4.1.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6663
* chore(deps): update dependency picomatch to v4.0.7 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6664
* chore(deps): update dependency awssdk.sqs to 4.0.100.11 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6666
* chore(deps): update dependency nunit3testadapter to 6.3.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6667
* chore(deps): update dependency azure.storage.blobs to 12.29.2 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6668


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.65.51...v1.65.63

## 1.65.51

<!-- Release notes generated using configuration in .github/release.yml
at v1.65.51 -->

## What's Changed
### Other Changes
* Compile public documentation snippets by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6652
* Fix covariant property override discovery by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6660
### Dependencies
* chore(deps): update tunit to 1.65.38 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6644
* chore(deps): update dependency fscheck to 3.4.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6646
* chore(deps): update dependency awssdk.sqs to 4.0.100.10 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6647
* chore(deps): update aspire to 13.5.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6648
* chore(deps): update dependency stackexchange.redis to 3.1.31 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6650
* chore(deps): update opentelemetry to 1.18.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6651


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.65.38...v1.65.51

## 1.65.38

<!-- Release notes generated using configuration in .github/release.yml
at v1.65.38 -->

## What's Changed
### Other Changes
* Fix mocks for inaccessible method signature types by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6641
### Dependencies
* chore(deps): update dependency awssdk.sqs to 4.0.100.9 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6636
* chore(deps): update tunit to 1.65.31 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6637
* chore(deps): update dependency dompurify to v3.4.14 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6640
* chore(deps): update aspire to 13.5.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6638
* chore(deps): update dependency cliwrap to 3.10.5 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6642


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.65.31...v1.65.38

## 1.65.31

<!-- Release notes generated using configuration in .github/release.yml
at v1.65.31 -->

## What's Changed
### Other Changes
* Add xunit.v3.aot to speed comparison by @​campersau in
https://github.com/thomhurst/TUnit/pull/6621
* Suppress HTML reports for nested test runs by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6620
* Address xUnit speed comparison review feedback by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6623
* Fix docs TypeScript 7 compatibility by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6625
* Refresh docs npm dependencies by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6624
* Switch to SignalWire llms.txt plugin by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6627
* Remove single-test discovery copies by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6631
* Skip unused scheduler work for unconstrained suites by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6632
* Skip empty test registration work by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6628
* Skip absent hook pipelines by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6630
* Fix mocks with inaccessible constructor parameter types by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6635
### Dependencies
* chore(deps): update dependency awssdk.sqs to 4.0.100.8 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6608
* chore(deps): update tunit to 1.65.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6609
* chore(deps): update dependency testcontainers.postgresql to 4.14.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6612
* chore(deps): update dependency testcontainers.kafka to 4.14.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6611
* chore(deps): update dependency testcontainers.redis to 4.14.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6613
* chore(deps): update dependency microsoft.net.test.sdk to 18.9.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6614
* chore(deps): update xunit to v4 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6616


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.65.0...v1.65.31

## 1.65.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.65.0 -->

## What's Changed
### Other Changes
* Report unexpected mock generation failures by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6605
* Process every GenerateMock attribute by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6606
* Support T.Mock() for static abstract interfaces by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6607
### Dependencies
* chore(deps): update dependency microsoft.templateengine.authoring.cli
to v10.0.303 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6586
* chore(deps): update dependency
microsoft.templateengine.authoring.templateverifier to 10.0.303 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6587
* chore(deps): update microsoft.build to 18.9.6 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6585
* chore(deps): update dependency fsharp.core to 10.1.400 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6588
* chore(deps): update dependency microsoft.entityframeworkcore to
10.0.11 by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6589
* chore(deps): update dependency microsoft.templateengine.authoring.cli
to v10.0.400 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6591
* chore(deps): update dependency dotnet-sdk to v10.0.400 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6590
* chore(deps): update dependency
microsoft.templateengine.authoring.templateverifier to 10.0.400 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6592
* chore(deps): update dependency system.commandline to 2.0.11 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6593
* chore(deps): update microsoft.extensions to 10.0.11 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6595
* chore(deps): update microsoft.aspnetcore to 10.0.11 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6594
* chore(deps): update tunit to 1.64.13 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6596
* chore(deps): update dependency nuget.protocol to 7.9.0 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6597
* chore(deps): update microsoft.extensions to 10.9.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6598
* chore(deps): update dependency polyfill to 11.2.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6601
* chore(deps): update dependency polyfill to 11.2.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6600
* chore(deps): update dependency
microsoft.testing.extensions.codecoverage to 18.10.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6602


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.64.13...v1.65.0

## 1.64.13

<!-- Release notes generated using configuration in .github/release.yml
at v1.64.13 -->

## What's Changed
### Other Changes
* Stabilize immediate WaitsFor assertion test by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6576
* fix: Allow Item.Member after HasSingleItem by @​SnakyBeaky in
https://github.com/thomhurst/TUnit/pull/6583
### Dependencies
* chore(deps): update tunit to 1.64.6 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6577
* chore(deps): update dependency nsubstitute to 6.2.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6580
* chore(deps): update dependency microsoft.playwright to 1.62.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6582
* chore(deps): update dependency microsoft.net.stringtools to 18.9.6 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6584

## New Contributors
* @​SnakyBeaky made their first contribution in
https://github.com/thomhurst/TUnit/pull/6583

**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.64.6...v1.64.13

## 1.64.6

<!-- Release notes generated using configuration in .github/release.yml
at v1.64.6 -->

## What's Changed
### Other Changes
* Switch NuGet publishing to trusted publishing by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6573
* Expose results directory through TestContext by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6575
* Fix outcome timeline overflow in HTML reports by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6574
### Dependencies
* chore(deps): update tunit to 1.64.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6570


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.64.0...v1.64.6

## 1.64.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.64.0 -->

## What's Changed
### Other Changes
* Honor cancellation tokens linked by custom test executors by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6565
* Fix linked cancellation from before-test hooks by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6568
* Add per-test execution cancellation by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6569
### Dependencies
* chore(deps): update tunit to 1.63.25 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6559
* chore(deps): update dependency serialize-javascript to v7.1.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6561
* chore(deps): update dependency nsubstitute to 6.1.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6564
* chore(deps): bump mermaid from 11.15.0 to 11.16.1 in /docs by
@​dependabot[bot] in https://github.com/thomhurst/TUnit/pull/6563
* chore(deps): bump nanoid from 3.3.16 to 3.3.18 in /docs by
@​dependabot[bot] in https://github.com/thomhurst/TUnit/pull/6562


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.63.25...v1.64.0

## 1.63.25

<!-- Release notes generated using configuration in .github/release.yml
at v1.63.25 -->

## What's Changed
### Other Changes
* Fix Mermaid label contrast in dark mode by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6531
* Enhance matrix tests documentation by @​koryphaee in
https://github.com/thomhurst/TUnit/pull/6537
* fix: support nested Member after IsTypeOf by @​mvanhorn in
https://github.com/thomhurst/TUnit/pull/6540
* docs: Add documentation for TestContext.Parameters by @​thomhurst with
@​Copilot in https://github.com/thomhurst/TUnit/pull/6558
* fix: run event receivers on injected properties by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6556
### Dependencies
* chore(deps): update tunit to 1.63.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6526
* chore(deps): update dependency stackexchange.redis to 3.1.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6529
* chore(deps): update verify to 31.28.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6532
* chore(deps): update dependency stackexchange.redis to 3.1.3 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6541
* chore(deps): update dependency dompurify to v3.4.13 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6542
* chore(deps): update dependency rabbitmq.client to 7.2.2 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6546
* chore(deps): update dependency polyfill to 11.0.2 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6549
* chore(deps): update dependency polyfill to 11.0.2 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6548
* chore(deps): bump fast-uri from 3.1.4 to 3.1.5 in /docs by
@​dependabot[bot] in https://github.com/thomhurst/TUnit/pull/6545
* chore(deps): bump postcss from 8.5.22 to 8.5.25 in /docs by
@​dependabot[bot] in https://github.com/thomhurst/TUnit/pull/6547
* chore(deps): update dependency stackexchange.redis to 3.1.11 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6550
* chore(deps): update dependency stackexchange.redis to 3.1.13 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6552

## New Contributors
* @​koryphaee made their first contribution in
https://github.com/thomhurst/TUnit/pull/6537

**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.63.0...v1.63.25

## 1.63.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.63.0 -->

## What's Changed
### Other Changes
* fix(mocks): dispatch abstract indexers through the engine instead of
calling base by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6517
* feat(mocks): experimental compile-time internals access (#​6514 Tier
2) by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6520
* feat(mocks): make the async-factory Returns alias available below
net9.0 by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6518
* +semver:minor - feat(mocks): runtime auto-stubs for interfaces the
source generator cannot see by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6519
### Dependencies
* chore(deps): update tunit to 1.62.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6508
* chore(deps): update dependency mockolate to 3.4.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6512
* chore(deps): update dependency cliwrap to 3.10.4 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6513
* chore(deps): update dependency stackexchange.redis to 3.0.25 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6522
* chore(deps): update dependency brace-expansion to v5.0.9 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6523
* chore(deps): update dependency microsoft.build.utilities.core to v18
by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6525


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.62.0...v1.63.0

## 1.62.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.62.0 -->

## What's Changed
### Other Changes
* fix(docs): make Mermaid lifecycle diagrams readable by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6485
* fix(mocks): strip nullable annotation from constructor dispatch
patterns by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6498
* fix(mocks): skip interfaces with inaccessible abstract members by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6502
* feat(mocks): accept an async factory in Returns() on async members by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6503
* fix(mocks): report TM006 instead of CS1729 for unsubclassable classes
by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6501
* fix(mocks): emit the setup surface into the globally-imported
namespace by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6504
* fix(mocks): reference TUnit.Mocks once in snapshot test compilations
by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6506
* fix(mocks): make generated identifier sanitization injective by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6507
### Dependencies
* chore(deps): update tunit to 1.61.38 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6479
* chore(deps): update dependency brace-expansion to v5.0.8 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6478
* chore(deps): update dependency cliwrap to 3.10.3 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6482
* chore(deps): bump postcss from 8.5.10 to 8.5.22 in /docs by
@​dependabot[bot] in https://github.com/thomhurst/TUnit/pull/6480
* chore(deps): update dependency fscheck to 3.3.4 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6486
* chore(deps): update dependency minimatch to v10.2.6 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6490
* chore(deps): update actions/stale action to v11 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6496
* chore(deps): update microsoft.testing to 2.3.3 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6499
* chore(deps): update mstest to 4.3.3 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6500


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.61.38...v1.62.0

## 1.61.38

<!-- Release notes generated using configuration in .github/release.yml
at v1.61.38 -->

## What's Changed
### Other Changes
* fix: apply 'unmanaged' constraint handling to remaining source
generators by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6474
* feat: expose data source attributes on TestContext by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6477
### Dependencies
* chore(deps): update tunit to 1.61.35 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6475


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.61.35...v1.61.38

## 1.61.35

<!-- Release notes generated using configuration in .github/release.yml
at v1.61.35 -->

## What's Changed
### Other Changes
* fix(mocks): omit 'struct' constraint when type parameter has
'unmanaged' constraint by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6473
### Dependencies
* chore(deps): bump fast-uri from 3.1.2 to 3.1.4 in /docs by
@​dependabot[bot] in https://github.com/thomhurst/TUnit/pull/6466
* chore(deps): update tunit to 1.61.29 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6467
* chore(deps): update dependency verify.tool to v0.8.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6470
* chore(deps): update dependency docusaurus-plugin-llms to ^0.5.1 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6472


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.61.29...v1.61.35

## 1.61.29

<!-- Release notes generated using configuration in .github/release.yml
at v1.61.29 -->

## What's Changed
### Other Changes
* perf: remove EnumerableAsyncProcessor dependency by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6465
### Dependencies
* chore(deps): bump shell-quote from 1.8.4 to 1.10.0 in /docs by
@​dependabot[bot] in https://github.com/thomhurst/TUnit/pull/6462
* chore(deps): bump body-parser from 1.20.5 to 1.20.6 in /docs by
@​dependabot[bot] in https://github.com/thomhurst/TUnit/pull/6461
* chore(deps): bump webpack-dev-server from 5.2.5 to 5.2.6 in /docs by
@​dependabot[bot] in https://github.com/thomhurst/TUnit/pull/6460
* chore(deps): update dependency microsoft.kiota.abstractions to v2 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6464
* chore(deps): update tunit to 1.61.23 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6463


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.61.23...v1.61.29

## 1.61.23

<!-- Release notes generated using configuration in .github/release.yml
at v1.61.23 -->

## What's Changed
### Other Changes
* fix(mocks): emit 'where T : default' for interface-constrained generic
methods by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6458
### Dependencies
* chore(deps): update tunit to 1.61.15 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6450
* chore(deps): update actions/checkout action to v7.0.1 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6453
* chore(deps): update verify to 31.26.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6454
* chore(deps): update verify to 31.27.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6457
* chore(deps): update react to ^19.2.8 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6459


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.61.15...v1.61.23

## 1.61.15

<!-- Release notes generated using configuration in .github/release.yml
at v1.61.15 -->

## What's Changed
### Other Changes
* feat: Allow disabling the automatic html report upload to
upload-artifacts@​v7 by @​Crashdummyy in
https://github.com/thomhurst/TUnit/pull/6447
* fix: stop retrying artifact upload on non-retryable status codes by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6449
### Dependencies
* chore(deps): update tunit to 1.61.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6437
* chore(deps): update verify to 31.24.3 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6438
* chore(deps): update dependency
opentelemetry.instrumentation.aspnetcore to 1.17.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6440
* chore(deps): update verify to 31.25.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6442
* chore(deps): update dependency docusaurus-plugin-llms to ^0.5.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6443
* chore(deps): update opentelemetry to 1.17.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6441

## New Contributors
* @​Crashdummyy made their first contribution in
https://github.com/thomhurst/TUnit/pull/6447

**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.61.0...v1.61.15

## 1.61.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.61.0 -->

## What's Changed
### Other Changes
* docs: revamp README with feature showcase and auto-updating benchmarks
by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6430
* docs: align docs homepage messaging with revamped README by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6431
* fix(engine): emit ECMA-335 metadata-format type names in
TestMethodIdentifierProperty by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6433
* fix(benchmarks): make SetupTeardownTests JSON tests Native AOT
compatible by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6434
* Organize repository into conventional .NET layout by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6435
### Dependencies
* chore(deps): update dependency polyfill to v11 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6418
* chore(deps): update dependency tunit.aspire to 1.6* by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6419
* chore(deps): update tunit to 1.6* by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6420
* chore(deps): update dependency polyfill to 11.0.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6421
* chore(deps): update dependency polyfill to 11.0.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6422
* chore(deps): update verify to 31.24.2 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6424
* chore(deps): update microsoft.build to 18.8.2 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6426
* chore(deps): update dependency microsoft.net.stringtools to 18.8.2 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6425
* chore(deps): update actions/setup-dotnet action to v6 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6427
* chore(deps): bump websocket-driver from 0.7.4 to 0.7.5 in /docs by
@​dependabot[bot] in https://github.com/thomhurst/TUnit/pull/6429
* chore(deps): update opentelemetry to 1.17.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6432


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.60.0...v1.61.0

## 1.60.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.60.0 -->

## What's Changed
### Other Changes
* feat: cross-process test report aggregation — merged HTML report +
single GitHub summary by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6415
### Dependencies
* chore(deps): update tunit to 1.59.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6398
* chore(deps): update verify to 31.24.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6399
* chore(deps): update microsoft.testing to 2.3.2 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6401
* chore(deps): update mstest to 4.3.2 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6402
* chore(deps): update actions/setup-node action to v7 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6403
* chore(deps): update dependency microsoft.net.test.sdk to 18.8.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6404
* chore(deps): update dependency microsoft.net.test.sdk to 18.8.1 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6405
* chore(deps): update dependency fsharp.core to 10.1.302 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6406
* chore(deps): update dependency microsoft.templateengine.authoring.cli
to v10.0.302 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6407
* chore(deps): update dependency microsoft.entityframeworkcore to
10.0.10 by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6410
* chore(deps): update dependency dotnet-sdk to v10.0.302 by @​thomhurst
in https://github.com/thomhurst/TUnit/pull/6409
* chore(deps): update dependency system.commandline to 2.0.10 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6412
* chore(deps): update dependency
microsoft.templateengine.authoring.templateverifier to 10.0.302 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6411
* chore(deps): update microsoft.aspnetcore to 10.0.10 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6413
* chore(deps): update microsoft.extensions to 10.0.10 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6414
* chore(deps): update microsoft.extensions to 10.8.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6416
* chore(deps): update dependency polyfill to v11 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6417


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.59.0...v1.60.0

## 1.59.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.59.0 -->

## What's Changed
### Other Changes
* Fix typed MethodDataSource provider instances by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6378
* Fix instance MethodDataSource isolation by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6379
* fix(mocks): CS9262 in generated mock members on VS 17.14 (Roslyn 4.14)
by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6392
* Remove EqualTo alias documentation by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6396
* fix(aspnetcore): guard hosted-service stop against concurrent double
Host.StopAsync by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6397
* Add single-item assertion chaining by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6395
* Improve test framework migrations by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6381
* Add -f/--framework support to TUnit template with .NET Framework
handling by @​thomhurst with @​Copilot in
https://github.com/thomhurst/TUnit/pull/6262
### Dependencies
* chore(deps): update tunit to 1.58.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6351
* chore(deps): update dependency tunit.core to 1.58.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6352
* chore(deps): update dependency picomatch to v4.0.5 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6354
* chore(deps): update dependency testcontainers.postgresql to 4.13.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6356
* chore(deps): update dependency testcontainers.redis to 4.13.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6357
* chore(deps): update dependency testcontainers.kafka to 4.13.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6355
* chore(deps): update dependency gitversion.tool to v6.8.1 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6359
* chore(deps): update dependency typescript to v7 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6372
* chore(deps): update mstest to 4.3.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6374
* chore(deps): update dependency messagepack to 3.1.8 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6376
* chore(deps): update dependency opentelemetry.instrumentation.runtime
to 1.16.0 by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6380
* chore(deps): update dependency vogen to 8.0.6 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6382
* chore(deps): update dependency gitversion.tool to v6.8.2 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6384
* chore(deps): update dependency npgsql.entityframeworkcore.postgresql
to 10.0.3 by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6385
* chore(deps): update docusaurus to v3.10.2 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6386
* chore(deps): update dependency stackexchange.redis to 3.0.17 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6387
* chore(deps): update dependency dompurify to v3.4.12 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6389
* chore(deps): update dependency svgo to v4.0.2 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6390
* chore(deps): update dependency nsubstitute to v6 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6394
* chore(deps): update verify to 31.24.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6367
* chore(deps): update microsoft.testing by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6369


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.58.0...v1.59.0

## 1.58.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.58.0 -->

## What's Changed
### Other Changes
* feat(aspire): opt-in live forwarding of resource logs into test output
(#​6341) by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6345
* fix(aspire): fail fast on Finished-state crashes during startup
(#​6342) by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6346
* fix(engine): keep per-test timeout token source alive through teardown
(#​6339) by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6349
* feat(aspire): resource-diagnostics helpers + retained log buffer
(#​6343) by @​thomhurst in https://github.com/thomhurst/TUnit/pull/6350
* feat(aspire): surface exception detail in routed OTLP logs (#​6347) by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6348
### Dependencies
* chore(deps): update tunit to 1.57.17 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6344


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.57.17...v1.58.0

## 1.57.17

<!-- Release notes generated using configuration in .github/release.yml
at v1.57.17 -->

## What's Changed
### Other Changes
* fix(engine): reset test cancellation token before After hooks on
timeout path (#​6339) by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6340
### Dependencies
* chore(deps): update tunit to 1.57.14 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6336


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.57.14...v1.57.17

## 1.57.14

<!-- Release notes generated using configuration in .github/release.yml
at v1.57.14 -->

## What's Changed
### Other Changes
* fix(engine): apply --treenode-filter to --list-tests by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6334
* feat(aspire): dump resource error logs on test failure + warn on
missing telemetry wiring by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6323
### Dependencies
* chore(deps): update dependency stackexchange.redis to 3.0.11 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6324
* chore(deps): update tunit to 1.57.0 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6322
* chore(deps): update dependency brace-expansion to v5.0.7 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6326
* chore(deps): update dependency polyfill to 10.11.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6327
* chore(deps): update dependency polyfill to 10.11.1 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6329
* chore(deps): update dependency polyfill to 10.11.2 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6330
* chore(deps): update dependency polyfill to 10.11.2 by @​thomhurst in
https://github.com/thomhurst/TUnit/pull/6331
* chore(deps): update dependency serialize-javascript to v7.0.7 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6333
* chore(deps): update dependency gitversion.tool to v6.8.0 by
@​thomhurst in https://github.com/thomhurst/TUnit/pull/6335


**Full Changelog**:
https://github.com/thomhurst/TUnit/compare/v1.57.0...v1.57.14

## 1.57.0

<!-- Release notes generated using configuration in .github/release.yml
at v1.57.0 -->

## What's Changed
### Other Changes
* perf(sourcegen): consolidate per-file ModuleInitializers into merged
.cctor (#​6226) by @​thomh…

This branch had an error being deployed

1 failed deployment
Pull Requests — 9c173566 Deployed Jul 28, 2026 by thomhurst via modularpipeline (windows-latest) #18681
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant