writing-mstest-tests Guide
Write new MSTest unit tests and implement concrete fixes in existing MSTest code using MSTest 3.x/4.x modern APIs and best practices. USE FOR: write unit tests for a class, write MSTest tests, create test class, fix test assertions, MSTest assertion APIs (StartsWith, EndsWith, MatchesRegex, IsGreaterThan, IsInRange, HasCount, IsNull), something seems off with my tests, review tests and fix issues, fix swapped Assert.AreEqual arguments, replace ExpectedException with Assert.Throws, modernize test patterns, convert DynamicData to ValueTuples, data-driven tests, test lifecycle setup, sealed test classes, async test patterns, cancellation token testing, test parallelization, Parallelize, DoNotParallelize, MSTest.Sdk project setup. DO NOT USE FOR: broad test quality audits or test smell detection (use test-anti-patterns), running tests (use run-tests), MSTest version migration (use migrate-mstest-v1v2-to-v3 or migrate-mstest-v3-to-v4).
When to use writing-mstest-tests
Write new MSTest unit tests and implement concrete fixes in existing MSTest code using MSTest 3.x/4.x modern APIs and best practices. USE FOR: write unit tests for a class, write MSTest tests, create test class, fix test assertions, MSTest assertion APIs (StartsWith, EndsWith, MatchesRegex, IsGreaterThan, IsInRange, HasCount, IsNull), something seems off with my tests, review tests and fix issues, fix swapped Assert.AreEqual arguments, replace ExpectedException with Assert.Throws, modernize test patterns, convert DynamicData to ValueTuples, data-driven tests, test lifecycle setup, sealed test classes, async test patterns, cancellation token testing, test parallelization, Parallelize, DoNotParallelize, MSTest.Sdk project setup. DO NOT USE FOR: broad test quality audits or test smell detection (use test-anti-patterns), running tests (use run-tests), MSTest version migration (use migrate-mstest-v1v2-to-v3 or migrate-mstest-v3-to-v4).
How to use writing-mstest-tests
writing-mstest-tests is a Claude skill in the SKILL.md format. Add it to your Claude environment from the source repository below, then it activates as a user-invocable skill when your task matches its description.