skills/csharp-nunit/SKILL.md
Get best practices for NUnit unit testing, including data-driven tests
npx skillsauth add williamlimasilva/.copilot csharp-nunitInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Your goal is to help me write effective unit tests with NUnit, covering both standard and data-driven testing approaches.
[ProjectName].TestsCalculatorTests for Calculator)dotnet test for running tests[TestFixture] attribute to test classes[Test] attribute for test methodsMethodName_Scenario_ExpectedBehavior[SetUp] and [TearDown] for per-test setup and teardown[OneTimeSetUp] and [OneTimeTearDown] for per-class setup and teardown[SetUpFixture] for assembly-level setup and teardown[TestCase] for inline test data[TestCaseSource] for programmatically generated test data[Values] for simple parameter combinations[ValueSource] for property or method-based data sources[Random] for random numeric test values[Range] for sequential numeric test values[Combinatorial] or [Pairwise] for combining multiple parametersAssert.That with constraint model (preferred NUnit style)Is.EqualTo, Is.SameAs, Contains.ItemAssert.AreEqual for simple value equality (classic style)CollectionAssert for collection comparisonsStringAssert for string-specific assertionsAssert.Throws<T> or Assert.ThrowsAsync<T> to test exceptions[Category("CategoryName")][Order] to control test execution order when necessary[Author("DeveloperName")] to indicate ownership[Description] to provide additional test information[Explicit] for tests that shouldn't run automatically[Ignore("Reason")] to temporarily skip testsdevelopment
Anxiety-aware, evidence-driven collaboration for stalled or high-stakes work when a user says uncertainty, repeated setbacks, or lack of visible progress is causing significant anxiety or distress. Use immediately when explicitly invoked; when this fit is only inferred from the user's own account, ask permission before applying it. Preserve the user's ideal and turn grounded perspective-taking into persistent, bounded problem solving. Do not use to diagnose, provide therapy, manufacture certainty, or lower goals for reassurance.
development
Build, review, debug, package, and test Roslyn diagnostic analyzers, code fix providers, and incremental source generators. Use for DiagnosticAnalyzer, CodeFixProvider, IIncrementalGenerator, IOperation analysis, Microsoft.CodeAnalysis dependency pinning, Roslyn test harnesses, C#/VB tests, and analyzer NuGet packaging.
testing
Migrates a project that uses checked-in .designer.cs files behind .resx to using a source-generator instead
development
Polish any GitHub repository's surface — labels (emoji rating tiers, P0–P3 priority, impact severity), issue forms, PR template, CI workflows, CODEOWNERS, rulesets, docs. Repo meta & config only — no code logic touched. Use when creating a new repo or polishing an existing one.