Backend 36 installs

MSTest Best Practices (MSTest 3.x/4.x)

by github/awesome-copilot

Get best practices for MSTest 3.x/4.x unit testing, including modern assertion APIs and data-driven tests

Skill content

Modern unit testing with MSTest 3.x/4.x using current APIs and best practices.

- Covers test class structure, lifecycle management, and the AAA (Arrange-Act-Assert) pattern with sealed classes and constructor-based initialization

- Provides comprehensive assertion APIs including equality, null checks, exception testing (Throws/ThrowsExactly), collections, strings, comparisons, and type assertions

- Supports data-driven tests via DataRow and DynamicData with ValueTuple and TestDataRow for type safety

- Includes advanced features: retry for flaky tests, OS/CI conditional execution, parallelization control, and work item traceability

- Highlights common mistakes and best practices for TestContext usage, cancellation tokens, and test organization

MSTest Best Practices (MSTest 3.x/4.x)

Your goal is to help me write effective unit tests with modern MSTest, using current APIs and best practices.

Project Setup

- Use a separate test project with naming convention [ProjectName].Tests

- Reference MSTest 3.x+ NuGet packages (includes analyzers)

- Consider using MSTest.Sdk for simplified project setup

- Run tests with dotnet test

Test Class Structure

- Use [TestClass] attribute for test classes

- Seal test classes by default for performance and design clarity

- Use [TestMethod] for test methods (prefer over [DataTestMethod])

- Follow Arrange-Act-Assert (AAA) pattern

- Name tests using pattern MethodName_Scenario_ExpectedBehavior