Releases: asynkron/Asynkron.TestRunner
Releases · asynkron/Asynkron.TestRunner
v0.9.1 - GitHub Issue Integration & Auto-Detection
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
testrunnerwith 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-issuesflag to enable GitHub issue reporting- Requires
ghCLI 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-bugreportInstall/Update
dotnet tool update -g Asynkron.TestRunnerv0.9.0
Full Changelog: v0.8.0...v0.9.0
v0.8.0
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.TestRunnerUpgrade
dotnet tool update --global Asynkron.TestRunnerv0.7.0 - .csproj Support
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
.csprojfiles in arguments - Runs
dotnet build -c Releaseautomatically - 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 --consoleError 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 - Streaming Console Mode & Improved Filtering
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
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.TestRunnerUpdate
dotnet tool update -g Asynkron.TestRunnerNote: This package has been published to NuGet.org and will be available shortly.
Full Changelog: v0.5.2...v0.5.3
v0.3.0
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
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 ./testsTimeout 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
- Show history chart after each test run (not just with
statscommand)
v0.1.0
Initial release
Features
- Wraps
dotnet testand 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