agentsclimarketplace

Testrunner

Skill onfire7777/universal-ai-skills-library/skills/testrunner

Router-first AI skill system for Codex, Claude, Cursor, Hermes, Paperclip, OpenCode, and local AI stacks: search, preflight-route, and load 1,812 skills on demand without duplicating the corpus.

Install
npx -y skills add onfire7777/universal-ai-skills-library --skill testrunner

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 13 stars13 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Handle flaky tests, crashing tests, hanging tests, out of memory tests, stack overflow tests, test isolation, test suite stability issues in .NET projects. Use when dotnet test hangs, crashes, produces OOM or stack overflow errors, or when the user has an unstable/flaky test suite. Do NOT use for normal test runs — only when standard dotnet test is insufficient.

The file declares its own license as Unspecified. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

4.2 KB, 943 tokens by cl100k_base, as published. Nobody here has run it

Prerequisites

This tool requires .NET 10+ SDK (for dnx support).

Check if dnx is available:

dnx --help

If dnx is not available, the user needs .NET 10 SDK or later. dnx ships with the SDK — it does not need separate installation.

About Asynkron.TestRunner

Asynkron.TestRunner is an alternative .NET test runner that wraps dotnet test with added resilience:

  • Hang detection — auto-detects stuck tests with per-test timeouts (default 20s)
  • Test isolation — automatically isolates hanging/crashing tests by splitting the test tree into branches and running them separately
  • History tracking — maintains pass/fail history per project, detects regressions across runs
  • Trend visualization — generates bar charts showing test health over time

This is NOT a replacement for dotnet test. Use it only when standard tooling fails — flaky suites, hanging tests, crashes, OOM, stack overflow, or when you need isolation and regression tracking.

Running via dnx (no install needed)

dnx runs .NET tools from source without installing them, similar to npx:

dnx Asynkron.TestRunner [arguments]

On first run, dnx will prompt to download the package. Use --yes to skip the prompt in CI.

Common Usage

Run all tests with hang detection:

dnx Asynkron.TestRunner

Filter by class or namespace:

dnx Asynkron.TestRunner "MyTestClass"
dnx Asynkron.TestRunner "MyNamespace.Integration"

Custom dotnet test command:

dnx Asynkron.TestRunner -- dotnet test ./tests/MyProject

List tests without running:

dnx Asynkron.TestRunner list

View test history and trends:

dnx Asynkron.TestRunner stats

Compare last two runs for regressions:

dnx Asynkron.TestRunner regressions

Manual isolation (find the culprit test):

dnx Asynkron.TestRunner isolate

Clear all history:

dnx Asynkron.TestRunner clear

Timeout & Isolation Options

FlagDefaultPurpose
-t, --timeout <seconds>20 (run), 30 (isolate)Per-test timeout
--timeout 0Disable hang detection
-p, --parallel [N]Run N test batches concurrently
--parallel (no value)Auto-detect and use CPU core count

How Isolation Works

When a hang is detected:

  1. The test tree is split into branches (max 100 leaf tests per branch)
  2. Branches are run separately in parallel
  3. Hanging branches are drilled down sequentially
  4. The culprit test is identified and reported

This catches tests that hang, crash the process, cause OOM, or stack overflow — scenarios where dotnet test simply dies or never returns.

History & Regression Tracking

History is stored in .testrunner/ directory, indexed by:

  • Project (git repo root hash or current directory)
  • Command signature (test command + filters)

Different filters and repos maintain independent histories for accurate regression detection.

When to Use This

Use Asynkron.TestRunner instead of dotnet test when:

  • Tests hang or never complete
  • The test process crashes (OOM, stack overflow, access violation)
  • Tests are flaky and you need regression tracking across runs
  • You need to isolate which specific test is causing failures
  • You want trend visualization of test health over time

For normal, healthy test suites — just use dotnet test.

Guidelines

  • Always try dotnet test first — only reach for testrunner when it fails
  • If tests hang, start with the default 20s timeout before adjusting
  • Use isolate to pinpoint the exact test causing crashes or hangs
  • Use stats and regressions to track flaky test patterns over time
  • Use --parallel for faster isolation on large test suites

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 326,970. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.