Skip to content

perf(html-report): parallel report serialization + optimized hot writers (-26% end-of-session time) - #6911

Merged
thomhurst merged 1 commit into
mainfrom
perf/html-report-parallel-serialize
Sep 28, 2026
Merged

thomhurst merged 1 commit into
mainfrom
perf/html-report-parallel-serialize

Conversation

@thomhurst

@thomhurst thomhurst commented Sep 28, 2026 •

Copy link
Copy Markdown
Owner

Summary

The default-on HTML report (and its JSON sidecar) is built after the last test finishes. That work is on the critical path of every run and is included in the process wall clock. At 10,000 tests it took ~350 ms. This PR cuts it by about a quarter without changing report content.

  1. Parallel array serialization. New ParallelJsonArrayWriter splits a large JSON array into slices.
    • Each slice is written by its own Utf8JsonWriter into its own SegmentedBufferWriter on a separate thread. The thread pool is otherwise idle at this point.
    • The slices are appended to the output in order. The bytes are identical to writing the elements sequentially.
    • Used for the HTML tests array (≥ 1,000 tests per slice), the sidecar groups array (≥ 8 groups per slice) and the sidecar spans array (≥ 2,000 spans per slice). Smaller arrays are written sequentially, exactly as before.
    • The sidecar is serialized concurrently with the HTML. Once the HTML path got faster, the sidecar would have become the critical path, so it is parallelised too.
  2. AggressiveOptimization on the per-element writers. Affected methods: HtmlReportGenerator.WriteTest/WriteSpan, ReportDataJson.WriteTest/WriteSpan, HtmlReporter.BuildReportData/ExtractTestResult. These run once per process over every test. Without it, their loops executed as unoptimized tier-0 code for the whole job, because tier-up is delayed while other methods are still being JIT-compiled. The attribute is under #if NET, so netstandard2.0 is unchanged.

SegmentedBufferWriter gains a WriteTo(IBufferWriter<byte>) overload for the splice. The new file is source-linked into TUnit.Reporting.Tool alongside the serializers.

Benchmark

Bare scenario from meziantou's benchmark, 10,000 tests, net10.0. I timed each phase inside the process with the same temporary instrumentation in both builds. The builds ran interleaved, 10 runs each; values are medians in ms:

Phase main this PR
BuildReportData 98 72
HTML JSON serialization 149 99
gzip + base64 (unchanged) 63 63
Reporter total (session finishing → sidecar written) 348 258

Not changed here: gzip is now the largest sequential piece. CompressionLevel.Fastest would take it from 57 ms to 15 ms on this payload, but the compressed report grows from 1.26 MB to 2.08 MB. That is a size/speed trade-off for you to decide, so I left the level alone.

Test plan

  • New ParallelJsonArrayWriterTests: parallel output is byte-identical to sequential output, with 0, 1, 7 and 10,000 elements and various slice sizes
  • TUnit.UnitTests: SegmentedBufferWriterTests (6), ReportDataJsonTests (11), ReportDataMergerTests (9), HtmlReporterTruncateOutputTests (7)
  • TUnit.Engine.Tests: HtmlReport* (66 passed, 1 skipped), *HtmlReportCliTests (5 passed, 1 skipped), ReportingSettingsTests (1 passed, 1 skipped)
  • TUnit.Engine (all TFMs) and TUnit.Reporting.Tool build

Summary by CodeRabbit

  • Performance
    • Large JSON arrays in HTML and aggregated reports are now serialized in parallel, which can speed up report generation while preserving output order.
    • Smaller arrays continue to use serial serialization.

…mize hot writers

Report serialization runs after the last test finishes, on the critical path,
while the thread pool is idle. ParallelJsonArrayWriter writes slices of a
large JSON array on separate threads into their own buffers and splices them
in order, so the bytes are identical to sequential output. Used for the HTML
tests array and the sidecar groups and spans arrays.

The per-test writers and BuildReportData run once per process, so they ran
as tier-0 code; mark them AggressiveOptimization on .NET.

Bare 10k, end-of-session reporter time 348ms -> 258ms (median of 10
interleaved runs).
@thomhurst
thomhurst deployed to Pull Requests September 28, 2026 16:20 — with GitHub Actions Active
@thomhurst
thomhurst deployed to Pull Requests September 28, 2026 16:20 — with GitHub Actions Active
@thomhurst
thomhurst deployed to Pull Requests September 28, 2026 16:20 — with GitHub Actions Active
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-28T16:27:02.284258Z 52e9463 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@coderabbitai

coderabbitai Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: a3d56b24-0f10-41eb-987e-9b311c75767f

📥 Commits

Reviewing files that changed from the base of the PR and between 3c57e2f and 52e9463.

📒 Files selected for processing (7)
  • src/TUnit.Engine/Reporters/Aggregation/ParallelJsonArrayWriter.cs
  • src/TUnit.Engine/Reporters/Aggregation/ReportDataJson.cs
  • src/TUnit.Engine/Reporters/Aggregation/SegmentedBufferWriter.cs
  • src/TUnit.Engine/Reporters/Html/HtmlReportGenerator.cs
  • src/TUnit.Engine/Reporters/Html/HtmlReporter.cs
  • src/TUnit.Reporting.Tool/TUnit.Reporting.Tool.csproj
  • tests/TUnit.UnitTests/ParallelJsonArrayWriterTests.cs

Included review availability: This review used your included allowance. Your plan provides up to 8 included reviews per hour; 2 remain after this review.


📝 Walkthrough

Walkthrough

Report data and HTML report serialization now use parallel array writing for configured array sizes. The writer serializes index slices into separate buffers and appends them in order. SegmentedBufferWriter can append written bytes to an IBufferWriter.

Changes

Parallel report serialization

Layer / File(s) Summary
Parallel array writer and buffer output
src/TUnit.Engine/Reporters/Aggregation/ParallelJsonArrayWriter.cs, src/TUnit.Engine/Reporters/Aggregation/SegmentedBufferWriter.cs, src/TUnit.Reporting.Tool/TUnit.Reporting.Tool.csproj, tests/TUnit.UnitTests/ParallelJsonArrayWriterTests.cs
ParallelJsonArrayWriter writes directly for fewer than two slices. Otherwise, it serializes index ranges concurrently and appends their buffers in order. SegmentedBufferWriter adds an IBufferWriter overload. The tool links the writer source, and tests compare parallel output with sequential output.
Aggregation report serialization
src/TUnit.Engine/Reporters/Aggregation/ReportDataJson.cs
ReportDataJson uses parallel array writing for groups and spans, with minimum slice sizes of 8 groups and 2,000 spans. It extracts group serialization into WriteGroup and adds NET-conditional optimization attributes to WriteTest and WriteSpan.
HTML report test serialization
src/TUnit.Engine/Reporters/Html/HtmlReportGenerator.cs, src/TUnit.Engine/Reporters/Html/HtmlReporter.cs
HtmlReportGenerator flattens grouped tests and writes the tests array through ParallelJsonArrayWriter, with a minimum slice size of 1,000 tests. It uses shared compact writer options. Both HTML reporting files add NET-conditional optimization attributes to specified methods.

Priority: ⬇️ Low

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Refactor

Sequence Diagram(s)

sequenceDiagram
  participant ReportDataJson
  participant ParallelJsonArrayWriter
  participant SliceBuffers
  participant IBufferWriter
  ReportDataJson->>ParallelJsonArrayWriter: WriteElements with element callback
  ParallelJsonArrayWriter->>SliceBuffers: Serialize index ranges concurrently
  ParallelJsonArrayWriter->>IBufferWriter: Flush before appending slice output
  SliceBuffers->>IBufferWriter: Append written bytes in range order with commas
Loading

Merge Risk: ⚪ Minimal · up to 52e94

The inspected serialization paths preserve report output, and no actionable issue remains before merge.

Security Architecture Review

Security architecture risk: 🔵 Low · up to 52e94

The report serializers retain their existing output boundaries and ordered content, with no identified new security exposure. Parallel work can delay cancellation, and end-to-end runtime behavior remains unverified.

Retained concerns
No architecture-level concerns identified.

Security review details

Security Blast Radius

  • inferred — The independently affected scope is report generation within a test session and the linked reporting tool. The inspected change adds no externally callable serializer or new service dependency.

Trust Boundaries and Controls

  • observed — Slice writers skip structural validation, but the inspected production callbacks use fixed JSON element writers. The enclosing writer is flushed before ordered splicing and closes each array next.

Resilience and Maintainability Implications

  • observed — A failed slice does not hand its partial buffer to the caller: slice buffers are disposed, serializer failure propagates, and the inspected sidecar lifecycle disposes abandoned results.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 37.50% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 24 functions across 6 files. (1 skipped: … Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the main changes: parallel HTML report serialization and optimization of hot writers. It matches the pull request objectives and is concise enough for a history entry.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

Docstring coverage is 37.50% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 24 functions across 6 files. (1 skipped: 1 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

A rabbit taps out slices in a row,
While little buffers gather below.
Commas hop between each part,
Tests check every quoted dart.
Groups and spans join the stream,
Neat JSON completes the dream.

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

Review: perf(html-report): parallel report serialization + optimized hot writers

Solid, well-reasoned perf work. The splice technique in ParallelJsonArrayWriter (each slice written by its own Utf8JsonWriter with SkipValidation = true into a separate SegmentedBufferWriter, then spliced back with manually-inserted commas) is a legitimate trick, and it's correctly implemented:

  • Slice boundaries use (long)count * slice / sliceCount to avoid overflow and keep boundaries exact, so no elements are dropped or duplicated.
  • writer.Flush() before splicing raw bytes into buffer is necessary and present — without it, whatever the outer Utf8JsonWriter still had buffered internally (e.g. the "tests":[ prefix) could land after the spliced slice bytes.
  • The outer writer's "array still looks empty" state after the splice is intentional and correctly relied upon: the contract ("caller's next call must be WriteEndArray") is honored everywhere it's used, so no stray leading comma.
  • All the dictionaries/arrays read inside the parallel closures (absStartByTestId, testWorker, spansByTrace, data.Groups, spans) are fully built before the Parallel.For starts and never mutated afterward, so the concurrent reads are safe. Each thread only writes to its own SegmentedBufferWriter/Utf8JsonWriter, so there's no shared mutable state across slices.
  • Buffer disposal is correct on the exception path: the finally disposes whatever slice buffers got assigned, and the pre-existing catch { buffer.Dispose(); throw; } around the callers still cleans up the outer buffer.
  • Threshold math (sliceCount = Math.Min(ProcessorCount, count / minElementsPerSlice)) matches the "below twice min runs sequential" comments, and single-core / small-array fallbacks correctly take the sequential path.
  • ParallelJsonArrayWriterTests is a good test: it validates byte-identical output against the sequential path across 0/1/7/10,000 elements and multiple slice sizes, including the "never actually splits" case.

One gap worth closing: the parallel path is untested through the real serializers

ParallelJsonArrayWriterTests only exercises ParallelJsonArrayWriter.WriteElements directly with a synthetic writeElement callback — it never goes through ReportDataJson.Write or HtmlReportGenerator.SerializeReport with real ReportTestGroup/ReportTestResult/SpanData data. The thresholds are MinGroupsPerSlice = 8, MinTestsPerSlice = 1000, MinSpansPerSlice = 2000 (so sliceCount >= 2 needs ≥16 groups / ≥2000 tests / ≥4000 spans on multi-core CI runners), and none of the existing integration tests (ReportDataJsonTests, HtmlReporterTests, HtmlReportCliTests, HtmlReporterTruncateOutputTests) come close to those sizes — they all use a handful of tests/groups/spans. That means the actual production closures in HtmlReportGenerator (the flatTests tuple flattening + absStartByTestId/testWorker lookups inside the per-element closure) and in ReportDataJson (WriteGroup/WriteSpan dispatch) only ever run through the sequential branch in CI today. A bug specific to those closures (e.g. a captured-variable mistake, or a lookup that behaves differently under the parallel slicing) wouldn't be caught by the existing suite. Consider adding one integration-level test per serializer that generates ≥ the threshold count of tests/groups/spans (even synthetically) and asserts the output is well-formed / matches a sequential baseline, so the real production code path — not just the generic writer — is covered end-to-end.

Minor / defensive note

ParallelJsonArrayWriter.WriteElements splices slices with a literal ","u8 byte, which is only correct because every caller passes Indented = false. If options.Indented were ever true (not the case today, but nothing enforces it), the splice would produce invalid formatting since Utf8JsonWriter inserts newlines/indentation around commas in indented mode, not just the comma byte. Given the class doc already documents several other invariants the caller must uphold, it'd be worth adding Debug.Assert(!options.Indented) (or documenting it explicitly as a precondition) so a future caller passing indented options fails loudly instead of producing silently malformed JSON.

Nothing here blocks merging — the gap above is the only thing I'd actually ask to see addressed; the indentation note is a cheap guard to add if you're touching the file again.

@greptile-apps

greptile-apps Bot commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 4/5

[Medium risk] Optimizes report serialization with parallel JSON writing.

The PR appears safe to merge, with non-blocking memory-efficiency and test-coverage improvements recommended.

Findings

  1. P2 Higher peak report memory ▶
  2. P2 Parallel path may go untested ▶

Summary

The PR parallelizes large HTML and sidecar JSON arrays, adds a buffer-to-buffer append overload, and applies optimization attributes to report hot paths.

  • The slice-copy design increases transient pooled-memory use for large reports.
  • The new tests do not guarantee that their parallel cases exercise slicing.
Diagram
%%{init: {'theme': 'neutral'}}%%
flowchart LR
  A[Report data] --> H[HTML serialization]
  A --> S[Sidecar serialization]
  H --> HS[Parallel test slices]
  S --> GS[Parallel group or span slices]
  HS --> HC[Copy slices into HTML buffer]
  GS --> SC[Copy slices into sidecar buffer]
Loading

Reviews (1) · Last reviewed commit: "perf(html-report): serialize large repor..."

Comment thread src/TUnit.Engine/Reporters/Aggregation/ParallelJsonArrayWriter.cs
Comment thread tests/TUnit.UnitTests/ParallelJsonArrayWriterTests.cs
@thomhurst
thomhurst enabled auto-merge (squash) September 28, 2026 17:15
@thomhurst
thomhurst merged commit 826046b into main Sep 28, 2026
24 checks passed
@thomhurst
thomhurst deleted the perf/html-report-parallel-serialize branch September 28, 2026 17:18
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…
alexeyzimarev pushed a commit to kurrent-io/kcap-cli that referenced this pull request Oct 5, 2026
Updated [TUnit](https://github.com/thomhurst/TUnit) from 1.68.4 to
1.72.10.

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

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

## 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
thomhurst/TUnit#6930
### Dependencies
* chore(deps): update tunit to 1.72.4 by @​thomhurst in
thomhurst/TUnit#6941
* chore(deps): update aspire to 13.6.0 by @​thomhurst in
thomhurst/TUnit#6940
* chore(deps): update verify to 33.2.0 by @​thomhurst in
thomhurst/TUnit#6943
* chore(deps): update dependency awssdk.sqs to 4.0.100.15 by @​thomhurst
in thomhurst/TUnit#6944

## New Contributors
* @​zion-sati made their first contribution in
thomhurst/TUnit#6930

**Full Changelog**:
thomhurst/TUnit@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
thomhurst/TUnit#6937
### Dependencies
* chore(deps): update tunit to 1.72.0 by @​thomhurst in
thomhurst/TUnit#6934


**Full Changelog**:
thomhurst/TUnit@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
thomhurst/TUnit#6923
* perf(analyzers): trim remaining analyzer hot-path symbol lookups and
binds by @​thomhurst in thomhurst/TUnit#6928
* perf(mocks): move shared MockCall wrapper plumbing into runtime base
classes by @​thomhurst in thomhurst/TUnit#6929
* perf(source-gen): close incremental caching gaps in static property
and property injection generators by @​thomhurst in
thomhurst/TUnit#6925
* perf(source-gen): stop InfrastructureGenerator pinning an old
Compilation by @​thomhurst in
thomhurst/TUnit#6926
* perf(assertions-analyzers): cache assertion symbols and cut per-call
work by @​thomhurst in thomhurst/TUnit#6927
* perf(source-gen): emit hooks per class with direct, non-async bodies
by @​thomhurst in thomhurst/TUnit#6924
* test: fix flaky ObjectInitializer continuation-thread test by
@​thomhurst in thomhurst/TUnit#6932
* fix: CI flakes from leaked hook contexts, ActivityCollector race and
Repro5700 rendezvous by @​thomhurst in
thomhurst/TUnit#6933
* fix(aspnetcore): honor WebApplicationFactoryClientOptions in
CreateClient by @​thomhurst in
thomhurst/TUnit#6931
### Dependencies
* chore(deps): update tunit to 1.71.0 by @​thomhurst in
thomhurst/TUnit#6920


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


**Full Changelog**:
thomhurst/TUnit@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
thomhurst/TUnit#6898


**Full Changelog**:
thomhurst/TUnit@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 thomhurst/TUnit#6897
* fix(mocks): emit valid lambdas for Task/ValueTask-returning delegate
mocks by @​thomhurst in thomhurst/TUnit#6896
### Dependencies
* chore(deps): update tunit to 1.69.24 by @​thomhurst in
thomhurst/TUnit#6893


**Full Changelog**:
thomhurst/TUnit@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 thomhurst/TUnit#6889
### Dependencies
* chore(deps): update verify to 33.1.5 by @​thomhurst in
thomhurst/TUnit#6891
* chore(deps): update tunit to 1.69.21 by @​thomhurst in
thomhurst/TUnit#6890


**Full Changelog**:
thomhurst/TUnit@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
thomhurst/TUnit#6882
* feat: warn when setup hooks pass the test execution token by @​Sing303
in thomhurst/TUnit#6883
* fix: complete DedicatedThreadExecutor tests only after CleanUp()
returns by @​glennawatson in
thomhurst/TUnit#6886
### Dependencies
* chore(deps): update tunit to 1.69.16 by @​thomhurst in
thomhurst/TUnit#6881

## New Contributors
* @​glennawatson made their first contribution in
thomhurst/TUnit#6886

**Full Changelog**:
thomhurst/TUnit@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
thomhurst/TUnit#6879
### Dependencies
* chore(deps): update tunit to 1.69.0 by @​thomhurst in
thomhurst/TUnit#6864
* chore(deps): update dependency messagepack to 3.1.10 by @​thomhurst in
thomhurst/TUnit#6866
* chore(deps): update dependency dompurify to v3.4.16 by @​thomhurst in
thomhurst/TUnit#6867
* chore(deps): update dependency serialize-javascript to v7.1.2 by
@​thomhurst in thomhurst/TUnit#6868
* chore(deps): update dependency azure.data.tables to 12.13.0 by
@​thomhurst in thomhurst/TUnit#6870
* chore(deps): update dependency microsoft.playwright to 1.63.0 by
@​thomhurst in thomhurst/TUnit#6871
* chore(deps): update verify to 33.1.2 by @​thomhurst in
thomhurst/TUnit#6872
* chore(deps): update dependency verify.tool to v0.9.2 by @​thomhurst in
thomhurst/TUnit#6873
* chore(deps): update verify to 33.1.3 by @​thomhurst in
thomhurst/TUnit#6874
* chore(deps): update verify to 33.1.4 by @​thomhurst in
thomhurst/TUnit#6876
* chore(deps): update dependency moq to 4.21.0 by @​thomhurst in
thomhurst/TUnit#6877
* chore(deps): bump image-size from 2.0.2 to 2.0.4 in /docs by
@​dependabot[bot] in thomhurst/TUnit#6878

## New Contributors
* @​Sing303 made their first contribution in
thomhurst/TUnit#6879

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

## New Contributors
* @​ForNeVeR made their first contribution in
thomhurst/TUnit#6844

**Full Changelog**:
thomhurst/TUnit@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 thomhurst/TUnit#6833
* fix(mocks): let one type be mocked regularly and wrapped in one
compilation by @​thomhurst in
thomhurst/TUnit#6835
* fix(mocks): keep editors in sync with publicized project references
(#​6836) by @​thomhurst in thomhurst/TUnit#6837
### Dependencies
* chore(deps): update tunit to 1.68.4 by @​thomhurst in
thomhurst/TUnit#6824
* chore(deps): update mstest to 4.4.1 by @​thomhurst in
thomhurst/TUnit#6825
* chore(deps): update microsoft.testing by @​thomhurst in
thomhurst/TUnit#6717
* chore(deps): update verify to v33 by @​thomhurst in
thomhurst/TUnit#6794
* chore(deps): update dependency stackexchange.redis to 3.2.15 by
@​thomhurst in thomhurst/TUnit#6827
* chore(deps): update dependency messagepack to 3.1.9 by @​thomhurst in
thomhurst/TUnit#6828
* chore(deps): update dependency stackexchange.redis to 3.3.0 by
@​thomhurst in thomhurst/TUnit#6831
* chore(deps): update opentelemetry to 1.19.0 by @​thomhurst in
thomhurst/TUnit#6832


**Full Changelog**:
thomhurst/TUnit@v1.68.4...v1.68.17

Commits viewable in [compare
view](thomhurst/TUnit@v1.68.4...v1.72.10).
</details>

Updated [TUnit.Core](https://github.com/thomhurst/TUnit) from 1.68.4 to
1.72.10.

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

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

## 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
thomhurst/TUnit#6930
### Dependencies
* chore(deps): update tunit to 1.72.4 by @​thomhurst in
thomhurst/TUnit#6941
* chore(deps): update aspire to 13.6.0 by @​thomhurst in
thomhurst/TUnit#6940
* chore(deps): update verify to 33.2.0 by @​thomhurst in
thomhurst/TUnit#6943
* chore(deps): update dependency awssdk.sqs to 4.0.100.15 by @​thomhurst
in thomhurst/TUnit#6944

## New Contributors
* @​zion-sati made their first contribution in
thomhurst/TUnit#6930

**Full Changelog**:
thomhurst/TUnit@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
thomhurst/TUnit#6937
### Dependencies
* chore(deps): update tunit to 1.72.0 by @​thomhurst in
thomhurst/TUnit#6934


**Full Changelog**:
thomhurst/TUnit@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
thomhurst/TUnit#6923
* perf(analyzers): trim remaining analyzer hot-path symbol lookups and
binds by @​thomhurst in thomhurst/TUnit#6928
* perf(mocks): move shared MockCall wrapper plumbing into runtime base
classes by @​thomhurst in thomhurst/TUnit#6929
* perf(source-gen): close incremental caching gaps in static property
and property injection generators by @​thomhurst in
thomhurst/TUnit#6925
* perf(source-gen): stop InfrastructureGenerator pinning an old
Compilation by @​thomhurst in
thomhurst/TUnit#6926
* perf(assertions-analyzers): cache assertion symbols and cut per-call
work by @​thomhurst in thomhurst/TUnit#6927
* perf(source-gen): emit hooks per class with direct, non-async bodies
by @​thomhurst in thomhurst/TUnit#6924
* test: fix flaky ObjectInitializer continuation-thread test by
@​thomhurst in thomhurst/TUnit#6932
* fix: CI flakes from leaked hook contexts, ActivityCollector race and
Repro5700 rendezvous by @​thomhurst in
thomhurst/TUnit#6933
* fix(aspnetcore): honor WebApplicationFactoryClientOptions in
CreateClient by @​thomhurst in
thomhurst/TUnit#6931
### Dependencies
* chore(deps): update tunit to 1.71.0 by @​thomhurst in
thomhurst/TUnit#6920


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


**Full Changelog**:
thomhurst/TUnit@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
thomhurst/TUnit#6898


**Full Changelog**:
thomhurst/TUnit@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 thomhurst/TUnit#6897
* fix(mocks): emit valid lambdas for Task/ValueTask-returning delegate
mocks by @​thomhurst in thomhurst/TUnit#6896
### Dependencies
* chore(deps): update tunit to 1.69.24 by @​thomhurst in
thomhurst/TUnit#6893


**Full Changelog**:
thomhurst/TUnit@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 thomhurst/TUnit#6889
### Dependencies
* chore(deps): update verify to 33.1.5 by @​thomhurst in
thomhurst/TUnit#6891
* chore(deps): update tunit to 1.69.21 by @​thomhurst in
thomhurst/TUnit#6890


**Full Changelog**:
thomhurst/TUnit@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
thomhurst/TUnit#6882
* feat: warn when setup hooks pass the test execution token by @​Sing303
in thomhurst/TUnit#6883
* fix: complete DedicatedThreadExecutor tests only after CleanUp()
returns by @​glennawatson in
thomhurst/TUnit#6886
### Dependencies
* chore(deps): update tunit to 1.69.16 by @​thomhurst in
thomhurst/TUnit#6881

## New Contributors
* @​glennawatson made their first contribution in
thomhurst/TUnit#6886

**Full Changelog**:
thomhurst/TUnit@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
thomhurst/TUnit#6879
### Dependencies
* chore(deps): update tunit to 1.69.0 by @​thomhurst in
thomhurst/TUnit#6864
* chore(deps): update dependency messagepack to 3.1.10 by @​thomhurst in
thomhurst/TUnit#6866
* chore(deps): update dependency dompurify to v3.4.16 by @​thomhurst in
thomhurst/TUnit#6867
* chore(deps): update dependency serialize-javascript to v7.1.2 by
@​thomhurst in thomhurst/TUnit#6868
* chore(deps): update dependency azure.data.tables to 12.13.0 by
@​thomhurst in thomhurst/TUnit#6870
* chore(deps): update dependency microsoft.playwright to 1.63.0 by
@​thomhurst in thomhurst/TUnit#6871
* chore(deps): update verify to 33.1.2 by @​thomhurst in
thomhurst/TUnit#6872
* chore(deps): update dependency verify.tool to v0.9.2 by @​thomhurst in
thomhurst/TUnit#6873
* chore(deps): update verify to 33.1.3 by @​thomhurst in
thomhurst/TUnit#6874
* chore(deps): update verify to 33.1.4 by @​thomhurst in
thomhurst/TUnit#6876
* chore(deps): update dependency moq to 4.21.0 by @​thomhurst in
thomhurst/TUnit#6877
* chore(deps): bump image-size from 2.0.2 to 2.0.4 in /docs by
@​dependabot[bot] in thomhurst/TUnit#6878

## New Contributors
* @​Sing303 made their first contribution in
thomhurst/TUnit#6879

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

## New Contributors
* @​ForNeVeR made their first contribution in
thomhurst/TUnit#6844

**Full Changelog**:
thomhurst/TUnit@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 thomhurst/TUnit#6833
* fix(mocks): let one type be mocked regularly and wrapped in one
compilation by @​thomhurst in
thomhurst/TUnit#6835
* fix(mocks): keep editors in sync with publicized project references
(#​6836) by @​thomhurst in thomhurst/TUnit#6837
### Dependencies
* chore(deps): update tunit to 1.68.4 by @​thomhurst in
thomhurst/TUnit#6824
* chore(deps): update mstest to 4.4.1 by @​thomhurst in
thomhurst/TUnit#6825
* chore(deps): update microsoft.testing by @​thomhurst in
thomhurst/TUnit#6717
* chore(deps): update verify to v33 by @​thomhurst in
thomhurst/TUnit#6794
* chore(deps): update dependency stackexchange.redis to 3.2.15 by
@​thomhurst in thomhurst/TUnit#6827
* chore(deps): update dependency messagepack to 3.1.9 by @​thomhurst in
thomhurst/TUnit#6828
* chore(deps): update dependency stackexchange.redis to 3.3.0 by
@​thomhurst in thomhurst/TUnit#6831
* chore(deps): update opentelemetry to 1.19.0 by @​thomhurst in
thomhurst/TUnit#6832


**Full Changelog**:
thomhurst/TUnit@v1.68.4...v1.68.17

Commits viewable in [compare
view](thomhurst/TUnit@v1.68.4...v1.72.10).
</details>

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
github-actions Bot pushed a commit to IntelliTect/CodingGuidelines that referenced this pull request Oct 5, 2026
Updated [TUnit.Core](https://github.com/thomhurst/TUnit) from 1.68.17 to
1.72.16.

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

_Sourced from [TUnit.Core'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
thomhurst/TUnit#6951
### Dependencies
* chore(deps): update dependency azure.storage.blobs to 12.30.0 by
@​thomhurst in thomhurst/TUnit#6945
* chore(deps): update tunit to 1.72.10 by @​thomhurst in
thomhurst/TUnit#6946
* chore(deps): update dependency mockolate to 3.5.2 by @​thomhurst in
thomhurst/TUnit#6949


**Full Changelog**:
thomhurst/TUnit@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
thomhurst/TUnit#6930
### Dependencies
* chore(deps): update tunit to 1.72.4 by @​thomhurst in
thomhurst/TUnit#6941
* chore(deps): update aspire to 13.6.0 by @​thomhurst in
thomhurst/TUnit#6940
* chore(deps): update verify to 33.2.0 by @​thomhurst in
thomhurst/TUnit#6943
* chore(deps): update dependency awssdk.sqs to 4.0.100.15 by @​thomhurst
in thomhurst/TUnit#6944

## New Contributors
* @​zion-sati made their first contribution in
thomhurst/TUnit#6930

**Full Changelog**:
thomhurst/TUnit@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
thomhurst/TUnit#6937
### Dependencies
* chore(deps): update tunit to 1.72.0 by @​thomhurst in
thomhurst/TUnit#6934


**Full Changelog**:
thomhurst/TUnit@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
thomhurst/TUnit#6923
* perf(analyzers): trim remaining analyzer hot-path symbol lookups and
binds by @​thomhurst in thomhurst/TUnit#6928
* perf(mocks): move shared MockCall wrapper plumbing into runtime base
classes by @​thomhurst in thomhurst/TUnit#6929
* perf(source-gen): close incremental caching gaps in static property
and property injection generators by @​thomhurst in
thomhurst/TUnit#6925
* perf(source-gen): stop InfrastructureGenerator pinning an old
Compilation by @​thomhurst in
thomhurst/TUnit#6926
* perf(assertions-analyzers): cache assertion symbols and cut per-call
work by @​thomhurst in thomhurst/TUnit#6927
* perf(source-gen): emit hooks per class with direct, non-async bodies
by @​thomhurst in thomhurst/TUnit#6924
* test: fix flaky ObjectInitializer continuation-thread test by
@​thomhurst in thomhurst/TUnit#6932
* fix: CI flakes from leaked hook contexts, ActivityCollector race and
Repro5700 rendezvous by @​thomhurst in
thomhurst/TUnit#6933
* fix(aspnetcore): honor WebApplicationFactoryClientOptions in
CreateClient by @​thomhurst in
thomhurst/TUnit#6931
### Dependencies
* chore(deps): update tunit to 1.71.0 by @​thomhurst in
thomhurst/TUnit#6920


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


**Full Changelog**:
thomhurst/TUnit@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
thomhurst/TUnit#6898


**Full Changelog**:
thomhurst/TUnit@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 thomhurst/TUnit#6897
* fix(mocks): emit valid lambdas for Task/ValueTask-returning delegate
mocks by @​thomhurst in thomhurst/TUnit#6896
### Dependencies
* chore(deps): update tunit to 1.69.24 by @​thomhurst in
thomhurst/TUnit#6893


**Full Changelog**:
thomhurst/TUnit@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 thomhurst/TUnit#6889
### Dependencies
* chore(deps): update verify to 33.1.5 by @​thomhurst in
thomhurst/TUnit#6891
* chore(deps): update tunit to 1.69.21 by @​thomhurst in
thomhurst/TUnit#6890


**Full Changelog**:
thomhurst/TUnit@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
thomhurst/TUnit#6882
* feat: warn when setup hooks pass the test execution token by @​Sing303
in thomhurst/TUnit#6883
* fix: complete DedicatedThreadExecutor tests only after CleanUp()
returns by @​glennawatson in
thomhurst/TUnit#6886
### Dependencies
* chore(deps): update tunit to 1.69.16 by @​thomhurst in
thomhurst/TUnit#6881

## New Contributors
* @​glennawatson made their first contribution in
thomhurst/TUnit#6886

**Full Changelog**:
thomhurst/TUnit@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
thomhurst/TUnit#6879
### Dependencies
* chore(deps): update tunit to 1.69.0 by @​thomhurst in
thomhurst/TUnit#6864
* chore(deps): update dependency messagepack to 3.1.10 by @​thomhurst in
thomhurst/TUnit#6866
* chore(deps): update dependency dompurify to v3.4.16 by @​thomhurst in
thomhurst/TUnit#6867
* chore(deps): update dependency serialize-javascript to v7.1.2 by
@​thomhurst in thomhurst/TUnit#6868
* chore(deps): update dependency azure.data.tables to 12.13.0 by
@​thomhurst in thomhurst/TUnit#6870
* chore(deps): update dependency microsoft.playwright to 1.63.0 by
@​thomhurst in thomhurst/TUnit#6871
* chore(deps): update verify to 33.1.2 by @​thomhurst in
thomhurst/TUnit#6872
* chore(deps): update dependency verify.tool to v0.9.2 by @​thomhurst in
thomhurst/TUnit#6873
* chore(deps): update verify to 33.1.3 by @​thomhurst in
thomhurst/TUnit#6874
* chore(deps): update verify to 33.1.4 by @​thomhurst in
thomhurst/TUnit#6876
* chore(deps): update dependency moq to 4.21.0 by @​thomhurst in
thomhurst/TUnit#6877
* chore(deps): bump image-size from 2.0.2 to 2.0.4 in /docs by
@​dependabot[bot] in thomhurst/TUnit#6878

## New Contributors
* @​Sing303 made their first contribution in
thomhurst/TUnit#6879

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

## New Contributors
* @​ForNeVeR made their first contribution in
thomhurst/TUnit#6844

**Full Changelog**:
thomhurst/TUnit@v1.68.17...v1.69.0

Commits viewable in [compare
view](thomhurst/TUnit@v1.68.17...v1.72.16).
</details>

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=TUnit.Core&package-manager=nuget&previous-version=1.68.17&new-version=1.72.16)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

This branch was successfully deployed

1 active deployment
Pull Requests — 52e9463f Deployed Sep 28, 2026 by thomhurst via modularpipeline (windows-latest) #19552
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant