Tunit
Run TUnit tests with Playwright. Use when user asks to run tests, execute tests, or check if tests pass.From its SKILL.md
npx -y skills add aiskillstore/marketplace --skill tunitAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
SKILL.md
3.2 KB, 786 tokens by cl100k_base, as published. Nobody here has run it
Running TUnit Tests
This project uses TUnit with Playwright for testing. Tests are located in tests/SummitUI.Tests.Playwright/.
Run All Tests
dotnet run --project tests/SummitUI.Tests.Playwright
Run Tests with Limited Parallelism (Recommended)
To prevent system overload when running Playwright tests, limit parallel test execution:
# Run with maximum 1 parallel test (sequential)
dotnet run --project tests/SummitUI.Tests.Playwright -- --maximum-parallel-tests 1
# Run with maximum 8 parallel tests
dotnet run --project tests/SummitUI.Tests.Playwright -- --maximum-parallel-tests 8
Run Tests with Filters
TUnit uses --treenode-filter with path pattern: /assembly/namespace/class/test
Filter by class name:
dotnet run --project SummitUI.Tests.Playwright -- --treenode-filter '/*/*/ClassName/*'
Filter by exact test name:
dotnet run --project SummitUI.Tests.Playwright -- --treenode-filter '/*/*/*/TestName'
Examples:
# Run all Select accessibility tests
dotnet run --project tests/SummitUI.Tests.Playwright -- --treenode-filter '/*/*/SelectAccessibilityTests/*'
# Run specific test by name
dotnet run --project tests/SummitUI.Tests.Playwright -- --treenode-filter '/*/*/*/Trigger_ShouldHave_RoleCombobox'
# Run tests matching pattern (wildcard in test name)
dotnet run --project tests/SummitUI.Tests.Playwright -- --treenode-filter '/*/*/*/Keyboard*'
# Run all tests in namespace
dotnet run --project tests/SummitUI.Tests.Playwright -- --treenode-filter '/*/SummitUI.Tests.Playwright/*/*'
Run Tests in Debug Mode
When a debugger is attached, Playwright will run in debug mode (PWDEBUG=1) automatically via the Hooks.cs setup.
View Test Output
Add --report flags for different output formats:
# Console output with details
dotnet run --project tests/SummitUI.Tests.Playwright -- --output-format console-detailed
# Generate TRX report
dotnet run --project tests/SummitUI.Tests.Playwright -- --report-trx
Flakiness Mitigation
The test project includes several features to reduce flakiness:
- Automatic Retries: Tests are automatically retried up to 2 times on failure (
[Retry(2)]in GlobalSetup.cs) - Fully Sequential Execution: All tests run sequentially via
[assembly: NotInParallel]in GlobalSetup.cs - Server Readiness Check:
Hooks.cswaits for the Blazor server to be fully ready before tests start - Extended Timeouts: Configured via
tunit.jsonfor longer test and hook timeouts
Project Structure
GlobalSetup.cs- Assembly-level test configuration (retries, parallelism)Hooks.cs- Test session setup/teardown (starts Blazor server)BlazorWebApplicationFactory.cs- WebApplicationFactory for hosting the test servertunit.json- TUnit configuration file*AccessibilityTests.cs- Accessibility test classes inheriting fromPageTest
Test Conventions
- Tests inherit from
TUnit.Playwright.PageTestto getPageaccess - Use
[Before(Test)]for per-test setup - Use
[Before(TestSession)]/[After(TestSession)]for session-wide setup - Access the running server via
Hooks.ServerUrl
What ships with it: 1 file
28.8 KB alongside SKILL.md
- skill-report.json28.8 KB