Install any skill in seconds. Free to start, no credit card required.
Get Started Free →dotnet/migrate-xunit-to-mstest
Convert .NET test projects from xUnit.net v2 or v3 to MSTest v4.
Passed 9 of 14 test cases with the skill, and 7 of 14 without it.
and 1 more in the full report
4 fixed10 passed either way8 still failing1 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 4 test cases the skill fixed. Same model, same prompt, with and without the skill.
Convert this xUnit test assertion to MSTest v4: `var ex = Assert.ThrowsAny<KeyNotFoundException>(() => cache.Get("missing"));`. Base models might map `ThrowsAny` to `ThrowsExactly`. Which MSTest v4 assertion method allows derived exception types?
| Checked | Without skill | With skill |
|---|---|---|
| Uses Assert.Throws to replace xUnit Assert.ThrowsAny. | Missed | Passed |
The instructions your model reads when the skill loads.
Convert xUnit.net v2 or v3 tests to MSTest v4 without changing the target framework or test platform. A successful migration builds, discovers the same tests, and preserves pass/fail results and execution semantics.
Use this skill only when the project contains xUnit packages or source and the user wants MSTest. If the project already uses MSTest and contains no xUnit tests, report that no framework migration is needed and make no changes.
Do not combine this framework conversion with a target-framework upgrade or VSTest/MTP migration. Complete and verify one migration before starting another.
Apply these before the mechanical mapping:
| Detected state | Required action |
|---|---|
| No xUnit package, namespace, attribute, or fixture remains | Stop. Make no file changes, report that migration is unnecessary, and run the existing dotnet test command once to prove the already-MSTest project is healthy. |
| Source uses VSTest | Keep the existing VSTest property/configuration. Prefer retaining and updating a source project's explicit Microsoft.NET.Test.Sdk pin; a repository that intentionally relies on the MSTest metapackage's transitive dependency may keep that convention. Do not introduce MTP properties. |
test cases passed, vs 7 / 14 without
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.