Skip to content
Testing · .NET library

winwright

Testing a Windows desktop app usually means a framework that reports pass or fail and leaves you to guess which one you got. winwright reports four verdicts, so a check that could not run is never filed as one that passed, and the test tells you what it actually observed rather than what it hoped for.

Public numbers

Latest release
v1.1.9
released 2026-11-12

Install

Claude Code plugin
/plugin marketplace add alegauss/alegauss.github.io
/plugin install winwright@alegauss
NuGet
<PackageReference Include="Winwright" Version="1.1.3" />

What comes next

From the product's own docs/ROADMAP.md at 630441f.

Nothing is open on this product's roadmap right now.

Recently shipped

All 603 entries →
  1. The fixture died once with 0xC0000409 right after a file was chosen in the Open dialog, and nothing kept why

    A red guest run brings back each WER report written during it and prints what faulted, read by position so a localized guest still says it (design recorded in tools/blame-gather.ps1).

    WW623 · eefb201
  2. The README's -Carry example fence has prose after it on the same line, so GitHub renders what follows as code

    The -Carry example's fence stands alone again, its sentence joined the -Name paragraph, and ReadmeTests refuses any block closed by a fence with text after it.

    WW622 · 605bbaa
  3. An invoke whose handler exits the application can throw, since the process dies while UI Automation is returning

    An act whose application exits during the call or its read-back lands, saying the application exited, so the exit claim after it is what checks it (design recorded in README.md).

    WW617 · 324b037
  4. An in-app render of a window is sized to its frame but drawn to its client area, so its right and bottom edges are blank

    An in-app render of a window draws its client area at its client size, so no blank band runs down the right and bottom where its frame is (design recorded in README.md).

    WW616 · 75c9e3f
  5. The file-arrives case writes its file from the pool 300 ms in and waits 3 s, so a loaded guest reds it

    The file-arrives case writes from a thread of its own and gives the step 15 s, so a loaded guest still sees the file and the case reds only when it never comes.

    WW615 · 7a9c104
  6. A locator's order written as a number parses, so [order=1] means left and [order=9] an order that does not exist

    A locator's order is read by name only, so [order=1], [order=9] and [order=-1] are refused with the four orders there are.

    WW614 · 5145182
  7. An in-app render of a window whose background is the system backdrop draws dark-theme text on white

    An in-app render of a backdrop window composes what shows there: the capture key, the theme's ApplicationBackgroundBrush, or the Mica base (design recorded in src/Winwright.InApp/Renders.cs).

    WW611 · bc10b8d
  8. A case cannot put focus on an element before a press, so Enter or Space on a row goes wherever focus already is

    A "focus" act puts the keyboard focus on its element through UI Automation and reads it back, so the press after it lands on that row (design recorded in README.md).

    WW610 · b7d4d69