Skip to content

Releases: asynkron/Asynkron.TestRunner

v0.9.1 - GitHub Issue Integration & Auto-Detection

16 Jan 12:14

Choose a tag to compare

What's New

GitHub Issue Integration (--gh-bugreport)

  • Auto-create GitHub issues for failing, hanging, and crashed tests
  • Matches existing open issues by test name to avoid duplicates
  • Clickable issue links in console output
  • Sanity check: skips reporting when >20 tests fail (likely systemic issue)

Auto-Detection of Test Projects

  • Run testrunner with no arguments to auto-detect and run all test projects
  • Scans for *.Tests.csproj, *.Test.csproj, *Tests.csproj, etc.
  • Shows summary with pass/fail status and duration per project
  • Supports all standard options: testrunner --console --filter "SomeTest"

Changes

  • --gh-bugreport / --gh-issues flag to enable GitHub issue reporting
  • Requires gh CLI to be installed and authenticated
  • Different issue templates for Failed, Hanging, and Crashed tests
  • Auto-detect works with options like testrunner --tree-view --tree-depth 5

Usage

# Auto-detect and run all test projects
testrunner

# With options
testrunner --console --filter "UserTests"
testrunner --tree-view --tree-depth 2 --gh-bugreport

# Explicit path
testrunner run MyTests.csproj --gh-bugreport

Install/Update

dotnet tool update -g Asynkron.TestRunner

v0.9.0

12 Jan 20:39

Choose a tag to compare

Full Changelog: v0.8.0...v0.9.0

v0.8.0

12 Jan 11:54

Choose a tag to compare

Changes in v0.8.0

  • Improved default parallelism: Worker count default increased from 1 to 4 for better out-of-the-box performance
  • Enhanced CLI documentation with detailed flag descriptions

Installation

dotnet tool install --global Asynkron.TestRunner

Upgrade

dotnet tool update --global Asynkron.TestRunner

v0.7.0 - .csproj Support

11 Jan 20:41

Choose a tag to compare

New Features

.csproj File Support

You can now pass .csproj files directly to testrunner - it will automatically build them in Release mode and run the tests!

How it works:

  • Detects .csproj files in arguments
  • Runs dotnet build -c Release automatically
  • Finds the output DLL in bin/Release/net*/
  • Supports multi-targeting projects (uses latest framework)
  • Runs tests on the built assembly

Examples:

# Run tests from project file
testrunner run MyTests.csproj --console

# With filtering
testrunner run MyTests.csproj --filter "UserTests"

# List tests without running
testrunner list MyTests.csproj --filter "Should"

# Mix .dll and .csproj files
testrunner run Tests1.csproj Tests2.dll --console

Error Handling:

  • Clear error messages if project file not found
  • Build errors are displayed with exit codes
  • Fallback to manual build if auto-build fails

Improvements

  • Updated help documentation to mention .csproj support
  • Improved error messages throughout
  • Better path handling for both file types

Full Changelog

v0.6.0...v0.7.0

v0.6.0 - Streaming Console Mode & Improved Filtering

11 Jan 20:35

Choose a tag to compare

New Features

Streaming Console Mode

Added --console (-c) flag for AI-agent and CI/CD friendly output:

  • Real-time streaming test status updates
  • Colorized status labels:
    • 🟢 [PASSED] - Bright green
    • 🔴 [FAILED] - Bright red
    • 🔴 [CRASHED] - Bright red
    • 🟡 [HANGING] - Bright yellow
    • 🟡 [SKIPPED] - Bright yellow
  • No interactive Spectre.Console UI
  • Clean, parseable output format
  • Generates markdown summary report after run

Example:

testrunner run tests.dll --console
testrunner run tests.dll -c --filter "MyTests"

Improved Test Filtering

Enhanced filter to support simple substring matching:

  • --filter "ForOf" now matches anywhere in the fully qualified name
  • More intuitive and user-friendly
  • Old structured syntax still works:
    • --filter "Class=MyClass"
    • --filter "Method=MyMethod"
    • --filter "Namespace=MyNamespace"

Examples:

# Match any test with "ForOf" in the name
testrunner run tests.dll --filter "ForOf"

# Match specific class (old syntax still works)
testrunner run tests.dll --filter "Class=TestTree"

Bug Fixes

  • Fixed HttpServer.cs to match updated TestRunner constructor signature

Full Changelog

v0.5.3...v0.6.0

v0.5.3

11 Jan 15:54

Choose a tag to compare

What's Changed

  • 🚀 Upgraded to .NET 10
  • 🔧 Fixed worker DLL packaging with all dependencies (xunit, nunit, testcentric)
  • ⏳ Added hourglass emoji for tests over 50% timeout (replaces spinner when test is getting slow)
  • 📐 Adjusted text truncation to account for emoji width

Installation

dotnet tool install -g Asynkron.TestRunner

Update

dotnet tool update -g Asynkron.TestRunner

Note: This package has been published to NuGet.org and will be available shortly.

Full Changelog: v0.5.2...v0.5.3

v0.3.0

11 Jan 05:31

Choose a tag to compare

Summary

  • Add native worker orchestration with improved load balancing, isolation tiers, and hang/crash recovery.
  • Enhance live UI with heatmap, worker health, progress stats, and better filter diagnostics.
  • Add resume checkpoints (JSONL) and full markdown summaries for large test runs.
  • Improve discovery, timeout handling, and stream completion safety across workers.

Notable Changes

  • --workers parallel execution, tiered suspicious/confirmed queues, and isolation workers.
  • Resume support via .testrunner/resume.jsonl and .testrunner/summary.md output.
  • Fixes for stuck runs, orphaned tests, and stream termination edge cases.

v0.2.0

30 Dec 10:05

Choose a tag to compare

New Features

Per-test timeout (20s default)

Tests that hang are now automatically killed after 20 seconds using --blame-hang.

# Use default 20s timeout
testrunner -- dotnet test ./tests

# Custom timeout
testrunner --timeout 60 -- dotnet test ./tests

Timeout vs assertion failure detection

Timed out tests are now shown separately from assertion failures:

FAILED
──────────────────────────────────────────────────
  Passed:  135
  Timeout: 2
  Failed:  1
  ...

Timed Out (2):
  ⏱ MyTests.SlowTest
  ⏱ MyTests.HangingTest

AI-friendly output

Each run now outputs the timeout setting at the end:

[testrunner] Per-test timeout: 20s (use --timeout <seconds> to change)

v0.1.1

30 Dec 09:34

Choose a tag to compare

  • Show history chart after each test run (not just with stats command)

v0.1.0

30 Dec 09:22

Choose a tag to compare

Initial release

Features

  • Wraps dotnet test and streams output in real-time
  • Automatically captures TRX test results
  • Tracks test history per project and command signature
  • Shows pass/fail bar charts across runs
  • Detects regressions (tests that passed before but now fail)
  • Detects fixes (tests that failed before but now pass)
  • Supports color and non-color (CI/piped) output modes

Installation

dotnet tool install -g Asynkron.TestRunner