Run Tests
runceel/ReactiveProperty
Runs .NET tests with dotnet test. An agent skill from runceel/ReactiveProperty.
Submits .NET MAUI unit tests to Helix queues from a local machine and monitors job status and per-work-item logs with PowerShell scripts.
$ npx skills add dotnet/maui --skill run-helix-tests -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install dotnet/maui run-helix-tests --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/dotnet/maui.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/run-helix-tests .claude/skills/run-helix-tests && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "run-helix-tests" agent skill from https://github.com/dotnet/maui/tree/main/.github/skills/run-helix-tests into .claude/skills/run-helix-tests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "run-helix-tests", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/dotnet/maui/tree/main/.github/skills/run-helix-testsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add dotnet/maui --skill run-helix-tests -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install dotnet/maui run-helix-tests --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dotnet/maui.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.github/skills/run-helix-tests .agents/skills/run-helix-tests && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "run-helix-tests" agent skill from https://github.com/dotnet/maui/tree/main/.github/skills/run-helix-tests into .agents/skills/run-helix-tests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "run-helix-tests", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add dotnet/maui --skill run-helix-tests -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install dotnet/maui run-helix-tests --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dotnet/maui.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.github/skills/run-helix-tests .cursor/skills/run-helix-tests && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "run-helix-tests" agent skill from https://github.com/dotnet/maui/tree/main/.github/skills/run-helix-tests into .cursor/skills/run-helix-tests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "run-helix-tests", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/dotnet/maui.git --path .github/skills/run-helix-tests--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add dotnet/maui --skill run-helix-tests -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install dotnet/maui run-helix-tests --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dotnet/maui.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.github/skills/run-helix-tests .gemini/skills/run-helix-tests && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "run-helix-tests" agent skill from https://github.com/dotnet/maui/tree/main/.github/skills/run-helix-tests into .gemini/skills/run-helix-tests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "run-helix-tests", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install dotnet/maui run-helix-testsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add dotnet/maui --skill run-helix-tests -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/dotnet/maui.git skills-src && mkdir -p .github/skills && cp -r skills-src/.github/skills/run-helix-tests .github/skills/run-helix-tests && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "run-helix-tests" agent skill from https://github.com/dotnet/maui/tree/main/.github/skills/run-helix-tests into .github/skills/run-helix-tests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "run-helix-tests", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add dotnet/maui --skill run-helix-tests -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install dotnet/maui run-helix-tests --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dotnet/maui.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.github/skills/run-helix-tests .opencode/skills/run-helix-tests && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "run-helix-tests" agent skill from https://github.com/dotnet/maui/tree/main/.github/skills/run-helix-tests into .opencode/skills/run-helix-tests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "run-helix-tests", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
run-helix-testsSubmits .NET MAUI unit tests to Helix queues from a local machine and monitors job status and per-work-item logs with PowerShell scripts.
Three scripts cover the cycle. Submit-HelixTests.ps1 sends unit test projects to distributed Helix queues, Get-HelixJobStatus.ps1 checks a submitted job by its job ID, and Get-HelixWorkItemLog.ps1 fetches the console output of a single work item. The submitted projects, defined in eng/helix.proj, include the XAML, core controls, binding source generator, source generator, core and essentials unit tests, and the excerpt cuts off before the rest of the list.
Prerequisites are PowerShell 7 and a local .dotnet SDK, which dotnet cake provisions when it is missing, plus compiled build tasks on the first run. A manual route through helix.cmd is also described. The skill covers unit tests only, since device tests go through a different project file, helix_xharness.proj.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 7d38fd0. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 3 files in scripts/ (PowerShell), which the agent can run.
Shell commands in SKILL.md call:
pwshdotnetFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
helix.dot.netFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Requires local .dotnet SDK provisioned (run `dotnet cake` first if missing).
From compatibility in the SKILL.md frontmatter.
MAUI Helix Unit Test Runner loads about 1.4k tokens when it runs. Until then it costs about 48 tokens; SKILL.md has 358 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from dotnet/maui at commit 7d38fd0, republished under its MIT licence (© dotnet). 358 words, ~1,362 tokens.
.claude/skills/run-helix-tests/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Submit and monitor .NET MAUI unit tests on Helix infrastructure from your local machine.
This skill uses pwsh (PowerShell 7+) to run the scripts. The scripts call the local .dotnet/dotnet SDK.
helix_xharness.proj)Before running Helix tests, ensure:
Local SDK provisioned: The .dotnet/ folder must exist with the SDK
# If missing, run:
dotnet cake --target=dotnetBuild tasks compiled (for first run):
# Windows
.\build.cmd -restore -build -configuration Release -projects .\Microsoft.Maui.BuildTasks.slnf
# macOS/Linux
./build.sh -restore -build -configuration Release -projects ./Microsoft.Maui.BuildTasks.slnfAll scripts are in .github/skills/run-helix-tests/scripts/
# Submit all unit tests (XAML, Core, Essentials, Resizetizer, etc.)
pwsh .github/skills/run-helix-tests/scripts/Submit-HelixTests.ps1
# Submit with specific configuration
pwsh .github/skills/run-helix-tests/scripts/Submit-HelixTests.ps1 -Configuration Debug
# Submit to specific queue only
pwsh .github/skills/run-helix-tests/scripts/Submit-HelixTests.ps1 -Queue "Windows.10.Amd64.Open"# Monitor a submitted job (use job ID from submission output)
pwsh .github/skills/run-helix-tests/scripts/Get-HelixJobStatus.ps1 -JobId <JOB_ID>
# Wait for completion with polling
pwsh .github/skills/run-helix-tests/scripts/Get-HelixJobStatus.ps1 -JobId <JOB_ID> -Wait# Get console output for a specific work item
pwsh .github/skills/run-helix-tests/scripts/Get-HelixWorkItemLog.ps1 -JobId <JOB_ID> -WorkItem <WORK_ITEM_NAME>
# Get failed work items only
pwsh .github/skills/run-helix-tests/scripts/Get-HelixWorkItemLog.ps1 -JobId <JOB_ID> -FailedOnlyIf you prefer to run directly without scripts:
# Windows
.\helix.cmd
# macOS/Linux
./helix.shThese wrapper scripts set the required environment variables and submit to Helix.
The following test projects are submitted to Helix (defined in eng/helix.proj):
| Project | Description |
|---|---|
Controls.Xaml.UnitTests | XAML parsing and compilation tests |
Controls.Core.UnitTests | Core controls unit tests |
Controls.BindingSourceGen.UnitTests | Binding source generator tests |
SourceGen.UnitTests | General source generator tests |
Core.UnitTests | Core framework tests |
Essentials.UnitTests | Essentials APIs tests |
Resizetizer.UnitTests | Image resizing tests |
Tests run on multiple queues in parallel:
| Queue | Platform |
|---|---|
Windows.10.Amd64.Open | Windows 10 x64 |
osx.15.arm64.maui.open | macOS 15 ARM64 |
Submit tests:
$result = pwsh .github/skills/run-helix-tests/scripts/Submit-HelixTests.ps1
# Note the job IDs from outputMonitor progress:
pwsh .github/skills/run-helix-tests/scripts/Get-HelixJobStatus.ps1 -JobId $jobId -WaitCheck failures (if any):
pwsh .github/skills/run-helix-tests/scripts/Get-HelixWorkItemLog.ps1 -JobId $jobId -FailedOnlypwsh .github/skills/run-helix-tests/scripts/Get-HelixWorkItemLog.ps1 -JobId <JOB_ID> -WorkItem "Microsoft.Maui.Controls.Xaml.UnitTests.dll"Helix test results are reported to the console and can be viewed at:
| Issue | Solution |
|---|---|
| "dotnet not found" | Run dotnet cake --target=dotnet to provision SDK |
| "Build failed" | Run build.cmd/build.sh first to build required projects |
| "Queue not available" | Check https://helix.dot.net for queue status |
| "Test timeout" | Some tests have long execution times; this is normal |
This skill runs unit tests on Helix (eng/helix.proj).
For device tests (iOS, Android, MacCatalyst emulators/simulators), use:
# Device tests use helix_xharness.proj instead
./eng/common/msbuild.sh ./eng/helix_xharness.proj /t:Test /p:TargetOS=iosSee .github/instructions/helix-device-tests.instructions.md for device test guidance.
© dotnet, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (scripts) in .github/skills/run-helix-tests of dotnet/maui.
Open the folder on GitHubat commit 7d38fd0
MAUI Helix Unit Test Runner next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| MAUI Helix Unit Test Runner this skilldotnet/maui | 23k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Run Testsrunceel/ReactiveProperty | 944 | — | ~3.6k | Automated safety check: Pass | MIT | |
| Run Testsmicrosoft/testfx | 1k | — | ~4.2k | Automated safety check: Pass | MIT | |
| Debug Playwright Prowquay/quay | 2.8k | — | ~2.2k | Automated safety check: Pass | Apache-2.0 | |
| Analyze Azdo BuildDataDog/dd-trace-dotnet | 573 | — | ~3.5k | Automated safety check: Pass | Apache-2.0 | |
| Blue Teamgaasher/Agent-Loop-Skills | 174 | — | ~3.6k | Automated safety check: Pass | MIT |
runceel/ReactiveProperty
Runs .NET tests with dotnet test. An agent skill from runceel/ReactiveProperty.
microsoft/testfx
For dotnet test: figures out which test platform (VSTest vs Microsoft.Testing.Platform) a project uses from Directory.Build.props, global.json, and .csproj, then picks the matching command syntax.
quay/quay
Deep-dive diagnosis of a Playwright test failure already isolated to one Quay Prow/OpenShift CI run: downloads its GCS artifacts (results.json, JUnit, build/pod logs, Jaeger traces), classifies real…
DataDog/dd-trace-dotnet
Analyze Azure DevOps CI build failures in dd-trace-dotnet pipeline.
gaasher/Agent-Loop-Skills
A skill your agent uses when the user has concrete failing cases in code or a guardrail/classifier/filter/prompt/API they own — a red-team failure catalogue OR a CI/CD test-failure report (failing…
microsoft/testfx
Provides file paths to language-specific extension files for the code-testing pipeline.
dotnet/maui
Mines local Copilot CLI session logs for dotnet/maui to rank costly or failing runs, tag recurring failure modes, propose repo edits and emit guard evals.
dotnet/maui
Reviews the tests added in a pull request for fix coverage, quality, edge cases and test type, and recommends lighter test types where they would do.
dotnet/maui
Produces evidence-backed ship-readiness verdicts for .NET MAUI Servicing Releases and Previews, and drafts public-safe release handoff pages from the result.
dotnet/maui
Interprets pinned managed benchmark evidence for a dotnet/maui pull request and writes a narrative for the performance review workflow, without running or publishing anything.
dotnet/maui
Checks that a pull request's title and description match its implementation and reviews the code for best practices before merge, without posting anything.
dotnet/maui
Adds MAUI-specific guardrails on top of the maestro-cli skill and Maestro MCP tools for darc, BAR, and channel or feed lookups in dotnet/maui.
Works with
Categories
Submits .NET MAUI unit tests to Helix queues from a local machine and monitors job status and per-work-item logs with PowerShell scripts. Three scripts cover the cycle.ps1 fetches the console output of a single work item.
MAUI Helix Unit Test Runner fits situations like: running MAUI unit tests on Helix rather than only on the local machine; validating a test change on both Windows and macOS queues; debugging a failure that appears only on Helix by reading work item logs.
Run `npx skills add dotnet/maui --skill run-helix-tests -a claude-code`. Or copy the skill folder (.github/skills/run-helix-tests in dotnet/maui) into .claude/skills/run-helix-tests in your project. Claude Code loads it when a task matches its description.
Run `npx skills add dotnet/maui --skill run-helix-tests -a codex`. Or copy the skill folder (.github/skills/run-helix-tests in dotnet/maui) into .agents/skills/run-helix-tests in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add dotnet/maui --skill run-helix-tests -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/run-helix-tests, .gemini/skills/run-helix-tests, .github/skills/run-helix-tests and .opencode/skills/run-helix-tests in your project.
Going by SKILL.md and its folder, MAUI Helix Unit Test Runner needs PowerShell for the scripts in its folder and the command-line tools its instructions call (pwsh and dotnet). Our summary lists: PowerShell 7; A local .dotnet SDK, provisioned with dotnet cake. Compatibility (from SKILL.md): Requires local .dotnet SDK provisioned (run `dotnet cake` first if missing)..
SKILL.md names 1 domain. As links in the text: helix.dot.net. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
MAUI Helix Unit Test Runner is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.4k tokens (SKILL.md is roughly 5.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with MAUI Helix Unit Test Runner: Run Tests (runceel/ReactiveProperty, 944 stars), Run Tests (microsoft/testfx, 1k stars), Debug Playwright Prow (quay/quay, 2.8k stars) and Analyze Azdo Build (DataDog/dd-trace-dotnet, 573 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
dotnet (a GitHub organization, an official publisher) maintains it in dotnet/maui, which has 23,322 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on October 7, 2026.
Source: dotnet/maui on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.