Skip to main content

write-xaml-tests

Creates XAML unit tests for GitHub issues in the Controls.Xaml.UnitTests project. Tests XAML parsing, compilation (XamlC), and source generation. Use when testing XAML-specific behavior, not UI interactions.

معلومات المصدر

المستودع
dotnet/maui
آخر نشاط في المصدر
٢٧ يناير ٢٠٢٦ في ١٧:١٣
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٢٣٬٣٢٠
التفرعات
١٬٩٨٤

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
write-xaml-tests
description
Creates XAML unit tests for GitHub issues in the Controls.Xaml.UnitTests project. Tests XAML parsing, compilation (XamlC), and source generation. Use when testing XAML-specific behavior, not UI interactions.
metadata
{"author":"Stephane Delcroix","version":"1.0"}
compatibility
Requires .NET SDK for building and running xUnit tests.
# Write XAML Tests Skill Creates XAML unit tests that verify XAML parsing, XamlC compilation, and source generation behavior. ## When to Use - ✅ Testing XAML parsing/inflation behavior - ✅ Testing XamlC (IL generation) correctness - ✅ Testing Source Generator output - ✅ XAML-specific bugs (bindings, markup extensions, x:Name, etc.) ## When NOT to Use - ❌ Testing UI interactions or visual behavior → Use `write-ui-tests` skill - ❌ Testing runtime behavior after page loads → Use `write-ui-tests` skill - ❌ Testing platform-specific rendering → Use `write-ui-tests` skill ## Required Input Before invoking, ensure you have: - **Issue number** (e.g., 12345) - **Issue description** - what XAML behavior is broken - **Expected vs actual behavior** ## Workflow ### Step 1: Read the XAML Unit Test Guidelines ```bash cat .github/instructions/xaml-unittests.instructions.md ``` This contains the authoritative conventions for: - File naming (`MauiXXXXX.xaml` and `MauiXXXXX.xaml.cs`) - File location (`src/Controls/tests/Xaml.UnitTests/Issues/`) - Test patterns with `[Values] XamlInflator` - XamlC testing with `MockCompiler` - Source Generator testing with `MockSourceGenerator` - Special file extensions for invalid codegen (`.rt.xaml`, `.rtsg.xaml`, `.rtxc.xaml`) ### Step 2: Create Test Files Following the conventions from Step 1, create: - `src/Controls/tests/Xaml.UnitTests/Issues/MauiXXXXX.xaml` - `src/Controls/tests/Xaml.UnitTests/Issues/MauiXXXXX.xaml.cs` ### Step 3: Verify Tests Compile and Run ```bash # Build the test project dotnet build src/Controls/tests/Xaml.UnitTests/Controls.Xaml.UnitTests.csproj -c Debug --no-restore -v q # Run specific test dotnet test src/Controls/tests/Xaml.UnitTests/Controls.Xaml.UnitTests.csproj --filter "FullyQualifiedName~MauiXXXXX" --no-build ``` ### Step 4: Verify Test Behavior - **For bug reproduction tests**: Tests should FAIL before fix, PASS after fix - **For regression tests**: Tests should PASS to confirm behavior works ## Output After completion, report: ```markdown ✅ XAML unit test created for Issue #XXXXX **Files:** - `src/Controls/tests/Xaml.UnitTests/Issues/MauiXXXXX.xaml` - `src/Controls/tests/Xaml.UnitTests/Issues/MauiXXXXX.xaml.cs` **Test method:** `DescriptiveTestName` **Inflators tested:** Runtime, XamlC, SourceGen **Verification:** Tests [PASS/FAIL] as expected ``` ## References - **Full conventions:** `.github/instructions/xaml-unittests.instructions.md` - **Test project:** `src/Controls/tests/Xaml.UnitTests/` - **Existing issue tests:** `src/Controls/tests/Xaml.UnitTests/Issues/`
عرض على GitHub