Agent skill · software engineering · affaan-m

windows-desktop-e2e

E2E testing for Windows native desktop apps (WPF, WinForms, Win32/MFC, Qt) using pywinauto and Windows UI Automation.

Why this skill is useful

Provides specific commands and patterns for E2E testing of Windows desktop applications using pywinauto and UIA that the AI wouldn't reliably generate on its own.

What it needs

Requires ffmpeg, pillow, pytest, pytest-html, pytest-timeout, python, pywinauto installed locally. About 6k tokens when loaded. Last updated 2026-08-06. 238,342 stars on the source repository.

What this skill does

Windows デスクトップ E2E テスト pywinauto と Windows UI Automation(UIA)を使用したWindowsネイティブデスクトップアプリケーションのエンドツーエンドテスト。WPF、WinForms、Win32/MFC、Qt(5.x / 6.x)をカバーし、Qt固有のガイダンスは専用セクションとして提供します。 アクティベートするタイミング Windowsネイティブデスクトップアプリケーションのエンドツーエンドテストを書くまたは実行するとき デスクトップGUIテストスイートをゼロから設定するとき 不安定または失敗するデスクトップオートメーションテストを診断するとき 既存のアプリにテスタビリティ(AutomationId、アクセシブルな名前)を追加するとき デスクトップエンドツーエンドをCI/CDパイプライン(GitHub Actions windows-latest)に統合するとき 使用しないタイミング Webアプリケーション → e2e-testing スキル(Playwright)を使用する Electron / CEF / WebView2 アプリ → HTMLレイヤーにはUIAではなくブラウザオートメーションが必要 モバイルアプリ → プラットフォーム固有のツールを使用する(UIAutomator、XCUITest) 実行中のGUIを必要としない純粋なユニットまたは統合テスト コアコンセプト すべてのWindowsデスクトップオートメーションはUI Automation(UIA)に依存します。これはWindowsに組み込まれたアクセシビリティAPIです。サポートされているすべてのフレームワークは、読み取りおよび操作可能なプロパティを持つUIA要素のツリーを公開します: フレームワーク別UIA品質: フレームワーク AutomationId 信頼性 注記 ----------- ------------- ------------- ------- WPF 5/5 優秀 x:Name が直接AutomationIdにマッピング WinForms 4/5 良好 AccessibleName = AutomationId UWP / WinUI 3 5/5 優秀 Microsoftの完全サポート Qt 6.x 5/5 優秀 アクセシビリティがデフォルトで有効;クラス名が Qt6 に変更 Qt 5.15+ 4/5 良好 Accessibilityモジュールが改善 Qt 5.7–5.14 3/5 普通 QTACCESSIBILITY=1 が必要;objectNameは手動設定 Win32 / MFC 3/5 普通 コントロールIDにアクセス可能;テキストマッチングが一般的 セットアップと前提条件 UIAが到達可能か確認: Accessibility Insights for Windowsをインストールしてください(Microsoft提供、無料)— テストを書く前にUIA要素ツリーを検査するためのDevTools相当のツールです。 テスタビリティのセットアップ(フレームワーク別) テストを書く前に全てのインタラクティブなコントロールに安定したAutomationIdを設定することが最も効果的です。 WPF WinForms Win32 / MFC Qt — 以下の専用セクションを参照 --- ページオブジェクトモデル basepage.py loginpage.py conftest.py 新しいプロジェクトではTier 1サンドボックスフィクスチャ(以下参照)を優先してください — 追加コストゼロでファイルシステムの分離が追加されます。この基本フィクスチャは最小限/レガシーセットアップ専用です。 config.py pytest.ini ロケーター戦略 Accessibility Insights → Properties ペインで検査 → まず AutomationId を確認。 ウェイトパターン time.sleep() を主要な同期手段として使用しないこと — wait() または waituntil() を使用してください。 アーティファクト管理 不安定なテストの対処 一般的な原因と修正: 原因 修正 ------- ----- コントロールが準備できていない time.sleep を waitvisible に置き換える ウィンドウがフォーカスされていない インタラクション前に win.setfocus() を追加する アニメーション進行中 waituntil(lambda: not loadingindicator.exists()) ダイアログのタイミング waitwindow …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills affaan-m/windows-desktop-e2e--77791d

View the source on GitHub

Browse the @skills marketplace