csharp-mstest
Installation
Summary
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
SKILL.md
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