AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
TestDetta reads your git diff and runs only the .NET test classes a change can affect. When it cannot be sure, it runs more, never less.
Developer toolsC# · HTMLGitHub @selcukguralOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
.NET test impact analysis: run only the tests a change can affect
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗Run only the .NET tests a change can affect.
TestDetta compares your branch with its base, works out which test projects and which test classes can observe the change, and runs just those. When it cannot be sure, it runs more, never less. It runs inside your CI and on your machine; your source, coverage and test results never leave them.
Documentation: testdetta.com/docs
$ td test --base origin/main
TestDetta 0.5.2 · 1 changed file · 2 affected test projects
Tests to run
┌──────────────────┬──────────┬─────────┬───────┬──────────────────────────────────────────────────────────┐
│ Test project │ Run │ Classes │ Saved │ Why │
├──────────────────┼──────────┼─────────┼───────┼──────────────────────────────────────────────────────────┤
│ tests/Shop.Tests │ filtered │ 3 / 41 │ - │ 3 of 41 test class(es) run or reference the changed code │
│ tests/Api.Tests │ skipped │ 0 / 12 │ - │ no test class runs or references the changed code │
└──────────────────┴──────────┴─────────┴───────┴──────────────────────────────────────────────────────────┘
TestDetta is the TestDetta package on nuget.org, a .NET tool with the
command td. The .NET 10 SDK runs td itself; your tests keep the SDK and runner your repository already uses.
Runs on Windows, Linux and macOS; every pull request runs the whole test suite on Windows and Linux, .NET Framework
4.6.2 to 4.8 test projects and legacy (non-SDK) solutions included.
dotnet tool install --global TestDetta # or: dotnet tool install TestDetta (local tool manifest)
dotnet tool update --global TestDetta # to the latest version
xUnit v2 and v3, NUnit, MSTest and TUnit, on VSTest and Microsoft.Testing.Platform, in C#, Visual Basic and F# (compatibility).
td record # on the default branch: run every test once and record coverage maps
td test --base origin/main # on a branch: run only the affected tests
td affected -v # what would run, and why, without running anything
Add .testdetta/ to .gitignore. Without a coverage map TestDetta still works, deciding by name, which
selects more. Every command and option: CLI reference.
- uses: actions/checkout@v7 # pin to a commit SHA
with:
fetch-depth: 0 # TestDetta compares with the merge base
- if: github.event_name == 'push' # default branch: record the maps
uses: TestDetta/action@8750db18099a2af0436788d20dc591e94b550c07 # v0.5.2
with:
mode: record
- if: github.event_name == 'pull_request' # pull requests: run the affected tests
uses: TestDetta/action@8750db18099a2af0436788d20dc591e94b550c07 # v0.5.2
with:
mode: test
The whole workflow, permissions and inputs: GitHub Actions. GitLab CI, Jenkins, Azure DevOps and Bitbucket: Other CI systems.
A Claude Code plugin (dist/claude-plugin): agents run td test instead of a full
dotnet test, and the affected tests run before the agent hands back.
/plugin install testdetta --marketplace selcukgural/TestDetta
appsettings.json, a .csproj, reflection-found types) runs the whole test project.Details: How it decides ·
Limitations ·
Validate on your repository (shadow mode and td audit) ·
Your test configuration ·
Troubleshooting ·
Security and data
.NET 10 SDK: dotnet build, dotnet test (Category=Slow tests build and record sample projects). Coding
guidelines: CONTRIBUTING.md. Design notes: docs/design. Security reports:
SECURITY.md.
TestDetta is free and open source for every repository, public or private. It is built by one person; if it saves your team test time, you can help it go on through GitHub Sponsors: monthly or once.