Skip to content

🤖 Update Mock Benchmark Results#5420

Merged
thomhurst merged 1 commit intomainfrom
automated-mock-benchmarks-update
Apr 6, 2026
Merged

🤖 Update Mock Benchmark Results#5420
thomhurst merged 1 commit intomainfrom
automated-mock-benchmarks-update

Conversation

@thomhurst
Copy link
Copy Markdown
Owner

Automated Mock Benchmark Update

This PR updates the mock benchmark documentation with the latest results from the Mock Benchmarks workflow.

Benchmarks Produced

Individual benchmark artifacts are available for download:

  • mock-benchmark-MockCreation
  • mock-benchmark-Setup
  • mock-benchmark-Invocation
  • mock-benchmark-Verification
  • mock-benchmark-Callback
  • mock-benchmark-CombinedWorkflow
  • mock-benchmark-summary (aggregated overview)

Libraries Compared

Libraries are discovered dynamically from the benchmark output. See the generated summary.json for the full list.

Changes

  • Updated mock benchmark data in docs/static/benchmarks/mocks/latest.json
  • Regenerated mock benchmark documentation in docs/docs/benchmarks/mocks/
  • Updated mock benchmark summary in docs/static/benchmarks/mocks/summary.json

Workflow Run

  • Run ID: 24017112853
  • Triggered: schedule

🤖 This PR was automatically created and will be merged automatically once CI checks pass.

@thomhurst thomhurst force-pushed the automated-mock-benchmarks-update branch from 7e6e098 to 35478f6 Compare April 6, 2026 03:22
Copy link
Copy Markdown
Contributor

@claude claude bot left a comment

Choose a reason for hiding this comment

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

Code Review: Automated Mock Benchmark Update

This is a purely automated documentation update — no code changes, only benchmark data and markdown refreshes.

Summary of Changes

  • Date stamps updated: 2026-04-052026-04-06
  • Benchmark numbers refreshed across all 6 categories (Callback, CombinedWorkflow, Invocation, MockCreation, Setup, Verification)
  • JSON data files (latest.json, summary.json) updated accordingly

Notable Benchmark Trends (vs previous run)

Improvements for TUnit.Mocks:

  • Invocation: 368.7 ns → 255.7 ns (~30% faster) with lower allocation (176 B → 120 B) — a meaningful gain
  • Invocation (String): 227.7 ns → 152.2 ns (~33% faster), allocation dropped 112 B → 88 B
  • Invocation (100 calls): 39,741.9 ns → 26,043.7 ns (~34% faster), 18048 B → 11936 B
  • MockCreation: Minor improvement, 37.32 ns → 35.02 ns

Slight regressions for TUnit.Mocks:

  • Callback: 651.9 ns → 719.4 ns (~10% slower)
  • CombinedWorkflow: 1.864 μs → 2.064 μs (~11% slower)

The Invocation improvements are significant and consistent across all invocation variants, suggesting something meaningful changed (either in the framework or in CI machine conditions). The Callback and CombinedWorkflow regressions are relatively small and within normal run-to-run variance given CI scheduling variability.

TUnit.Mocks continues to lead in MockCreation and Invocation benchmarks by a wide margin against Moq, NSubstitute, and FakeItEasy.

No Issues Found

The automation is well-structured: data files and generated markdown are updated together, charts and y-axis scales are recalculated correctly, and timestamps are consistent across all files. This is clean, low-risk documentation maintenance.

@claude
Copy link
Copy Markdown
Contributor

claude bot commented Apr 6, 2026

Code Review: Automated Mock Benchmark Update

This is a purely automated documentation update — no code changes, only benchmark data and markdown refreshes.

Summary of Changes

  • Date stamps updated: 2026-04-052026-04-06
  • Benchmark numbers refreshed across all 6 categories (Callback, CombinedWorkflow, Invocation, MockCreation, Setup, Verification)
  • JSON data files (latest.json, summary.json) updated accordingly

Notable Benchmark Trends (vs previous run)

Improvements for TUnit.Mocks:

  • Invocation: 368.7 ns → 255.7 ns (~30% faster) with lower allocation (176 B → 120 B)
  • Invocation (String): 227.7 ns → 152.2 ns (~33% faster), allocation dropped 112 B → 88 B
  • Invocation (100 calls): 39,741.9 ns → 26,043.7 ns (~34% faster), 18048 B → 11936 B
  • MockCreation: Minor improvement, 37.32 ns → 35.02 ns

Slight regressions for TUnit.Mocks:

  • Callback: 651.9 ns → 719.4 ns (~10% slower)
  • CombinedWorkflow: 1.864 μs → 2.064 μs (~11% slower)

The Invocation improvements are significant and consistent across all invocation variants. The Callback and CombinedWorkflow regressions are small and likely within normal CI run-to-run variance.

TUnit.Mocks continues to lead in MockCreation and Invocation benchmarks by a wide margin against Moq, NSubstitute, and FakeItEasy.

No Issues Found

The automation is well-structured: data files and generated markdown are updated together, charts and y-axis scales are recalculated correctly, and timestamps are consistent across all files. This is clean, low-risk documentation maintenance.

@codacy-production
Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

TIP This summary will be updated as you push new changes. Give us feedback

@thomhurst thomhurst merged commit 799d213 into main Apr 6, 2026
15 checks passed
@thomhurst thomhurst deleted the automated-mock-benchmarks-update branch April 6, 2026 09:20
This was referenced Apr 7, 2026
intellitect-bot pushed a commit to IntelliTect/EssentialCSharp.Web that referenced this pull request Apr 8, 2026
Updated [TUnit](https://github.com/thomhurst/TUnit) from 1.28.7 to
1.29.0.

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

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

## 1.29.0

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

## What's Changed
### Other Changes
* 🤖 Update Mock Benchmark Results by @​thomhurst in
thomhurst/TUnit#5420
* fix(mocks): resolve build errors when mocking Azure SDK clients by
@​thomhurst in thomhurst/TUnit#5440
* fix: deduplicate virtual hook overrides across class hierarchy
(#​5428) by @​thomhurst in thomhurst/TUnit#5441
* fix(mocks): unique __argArray locals per event in RaiseEvent dispatch
(#​5423) by @​thomhurst in thomhurst/TUnit#5442
* refactor(mocks): extract MockTypeModel.Visibility helper by
@​thomhurst in thomhurst/TUnit#5443
* fix(mocks): preserve nullable annotations on generated event
implementations by @​thomhurst in
thomhurst/TUnit#5444
* fix(mocks): preserve nullability on event handler types (#​5425) by
@​thomhurst in thomhurst/TUnit#5445
### Dependencies
* chore(deps): update tunit to 1.28.7 by @​thomhurst in
thomhurst/TUnit#5416
* chore(deps): update dependency polyfill to v10 by @​thomhurst in
thomhurst/TUnit#5417
* chore(deps): update dependency polyfill to v10 by @​thomhurst in
thomhurst/TUnit#5418
* chore(deps): update dependency mockolate to 2.4.0 by @​thomhurst in
thomhurst/TUnit#5431
* chore(deps): update mstest to 4.2.1 by @​thomhurst in
thomhurst/TUnit#5433
* chore(deps): update dependency microsoft.net.test.sdk to 18.4.0 by
@​thomhurst in thomhurst/TUnit#5435
* chore(deps): update microsoft.testing to 2.2.1 by @​thomhurst in
thomhurst/TUnit#5432
* chore(deps): update dependency
microsoft.testing.extensions.codecoverage to 18.6.2 by @​thomhurst in
thomhurst/TUnit#5437
* chore(deps): update dependency @​docusaurus/theme-mermaid to ^3.10.0
by @​thomhurst in thomhurst/TUnit#5438
* chore(deps): update docusaurus to v3.10.0 by @​thomhurst in
thomhurst/TUnit#5439


**Full Changelog**:
thomhurst/TUnit@v1.28.7...v1.29.0

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

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=TUnit&package-manager=nuget&previous-version=1.28.7&new-version=1.29.0)](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>
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