Migrates .NET test projects from xUnit.net v2 to xUnit.net v3. USE FOR: upgrading xunit to xunit.v3. DO NOT USE FOR: migrating between test frameworks (MSTest/NUnit to xUnit.net), migrating from VSTest to Microsoft.Testing.Platform (use migrate-vstest-to-mtp). For xUnit v3 MTP filter syntax (--filter-class, --filter-trait, --filter-query), also load migrate-vstest-to-mtp.
SkillScore59Maintained
Automatic
◆Coding pack
Last verified 9/1/2026
What it changes
Passed 8 of 13 test cases with the skill, and 7 of 13 without it.
Without skill55%
With skill59%
Checks it passed that the model alone missed
Sets UseMicrosoftTestingPlatformRunner to true.
Omits the xunit.runner.visualstudio package reference.
Sets IsTestingPlatformApplication to false in project configuration.
and 2 more in the full report
4 fixed9 passed either way6 still failing3 broke
Pass-rate lift
+5 pp
Tokens
+106%
Agent turns
0%
Response time
-27%
Model gemini-3.6-flashMeasured 9/1/2026v213 of 22 cases passed with skill · 13 comparable
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 4 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 4
Prompt
We are updating `Inventory.Tests.csproj` (a standard .NET 8.0 xUnit v2 project using `xunit` 2.9.2 and `xunit.runner.visualstudio` 2.8.2 without any MTP shim) to xUnit v3. How should the test runner platform properties and runner packages be configured in the project file?
What was checked, without and with the skill
Checked
Without skill
With skill
Sets IsTestingPlatformApplication to false in project configuration.
Missed
Passed
Retains the xunit.runner.visualstudio package reference.
Passed
Passed
case-08 · gemini-3.6-flash · 9/1/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md276 linessingle file
xunit.v3 Migration
Migrate .NET test projects from xUnit.net v2 to xUnit.net v3. The outcome is a solution where all test projects reference xunit.v3.* packages, compiles cleanly, and all tests pass with the same results as before migration.
When to Use
Upgrading test projects from xunit (v2) packages to xunit.v3
Resolving compilation errors after updating xunit package references to v3
When Not to Use
Migrating between test frameworks (e.g., MSTest or NUnit to xUnit.net) — different effort entirely
Migrating from VSTest to Microsoft.Testing.Platform — use migrate-vstest-to-mtp
The projects already reference xunit.v3 — migration is done
Inputs
Input
Required
Description
Test project or solution
No
Discover .csproj, .sln, .slnx, central props, and source in the current working directory; ask only if none are found or the target is ambiguous
Workspace and Completion Contract
Skill activation is not completion. For migrate/fix/update requests, inspect
the staged files, edit them, and run tests in the same task.
The skill base directory contains only guidance. Search the current working
directory and open paths exactly as returned. If a tool rejects a path just
found by search, retry with another available reader/editor instead of
concluding that files are missing.
Do not ask the user to provide a path while workspace discovery can find it.
Inventory project/central package files and all affected source in one pass.
A package-only migration is incomplete when v2-only APIs remain.
End with the detected source version and runner, exact package compatibility
set, files changed, discovered/passed/failed/skipped counts, and any
platform-specific result. A build without test discovery is not success.
Package validity is empirical: record the configured feed query or resolved
package graph and a successful restore. In the final result, say how the
selected exact versions were proven available; do not merely name a version
and leave a judge or user to infer whether it exists.