write-xaml-tests

Write XAML Tests Skill

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "write-xaml-tests" with this command: npx skills add dotnet/maui/dotnet-maui-write-xaml-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

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

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:

✅ 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/

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

try-fix

No summary provided by upstream source.

Repository SourceNeeds Review
General

pr-finalize

No summary provided by upstream source.

Repository SourceNeeds Review
General

learn-from-pr

No summary provided by upstream source.

Repository SourceNeeds Review
General

verify-tests-fail-without-fix

No summary provided by upstream source.

Repository SourceNeeds Review