
Csharp Nunit
- 8.8k installs
- 37.1k repo stars
- Updated July 28, 2026
- github/awesome-copilot
csharp-nunit is an agent skill that Get best practices for NUnit unit testing, including data-driven tests.
About
Get best practices for NUnit unit testing including data-driven tests name csharp-nunit description Get best practices for NUnit unit testing including data-driven tests NUnit Best Practices Your goal is to help me write effective unit tests with NUnit covering both standard and data-driven testing approaches Project Setup Use a separate test project with naming convention ProjectName Tests Reference Microsoft NET Test Sdk NUnit and NUnit3TestAdapter packages Create test classes that match the classes being tested e g CalculatorTests for Calculator Use NET SDK test commands dotnet test for running tests Test Structure Apply TestFixture attribute to test classes Use Test attribute for test methods Follow the Arrange-Act-Assert AAA pattern Name tests using the pattern MethodName_Scenario_ExpectedBehavior Use SetUp and TearDown for per-test setup and teardown Use OneTimeSetUp and OneTimeTearDown for per-class setup and teardown Use SetUpFixture for assembly-level setup and teardown Standard Tests Keep tests focused on a single behavior Avoid testing multiple behaviors in one test method Use clear assertions that express intent Include only the assertions needed to verify
- Use a separate test project with naming convention `[ProjectName].Tests`
- Reference Microsoft.NET.Test.Sdk, NUnit, and NUnit3TestAdapter packages
- Create test classes that match the classes being tested (e.g., `CalculatorTests` for `Calculator`)
- Use .NET SDK test commands: `dotnet test` for running tests
- Apply `[TestFixture]` attribute to test classes
Csharp Nunit by the numbers
- 8,811 all-time installs (skills.sh)
- +24 installs in the week ending Jul 28, 2026 (Skillselion tracking)
- Ranked #132 of 2,184 Testing & QA skills by installs in the Skillselion catalog
- Security screen: MEDIUM risk (skills.sh audit)
- Data as of Jul 28, 2026 (Skillselion catalog sync)
csharp-nunit capabilities & compatibility
- Capabilities
- use a separate test project with naming conventi · reference microsoft.net.test.sdk, nunit, and nun · create test classes that match the classes being · use .net sdk test commands: `dotnet test` for ru · apply `[testfixture]` attribute to test classes
- Use cases
- documentation
What csharp-nunit says it does
--- name: csharp-nunit description: 'Get best practices for NUnit unit testing, including data-driven tests' --- # NUnit Best Practices Your goal is to help m
npx skills add https://github.com/github/awesome-copilot --skill csharp-nunitAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 8.8k |
|---|---|
| repo stars | ★ 37.1k |
| Security audit | 3 / 3 scanners passed |
| Last updated | July 28, 2026 |
| Repository | github/awesome-copilot ↗ |
What problem does csharp-nunit solve for developers using this skill?
Get best practices for NUnit unit testing, including data-driven tests
Who is it for?
Developers who need csharp-nunit patterns described in the cached skill documentation.
Skip if: Skip when docs are empty or the task is outside the skill's documented scope.
When should I use this skill?
Get best practices for NUnit unit testing, including data-driven tests
What you get
Actionable workflows and conventions from SKILL.md for csharp-nunit.
- NUnit test classes
- [ProjectName].Tests project structure
By the numbers
- Requires three NuGet packages: Microsoft.NET.Test.Sdk, NUnit, and NUnit3TestAdapter
Files
NUnit Best Practices
Your goal is to help me write effective unit tests with NUnit, covering both standard and data-driven testing approaches.
Project Setup
- Use a separate test project with naming convention
[ProjectName].Tests - Reference Microsoft.NET.Test.Sdk, NUnit, and NUnit3TestAdapter packages
- Create test classes that match the classes being tested (e.g.,
CalculatorTestsforCalculator) - Use .NET SDK test commands:
dotnet testfor running tests
Test Structure
- Apply
[TestFixture]attribute to test classes - Use
[Test]attribute for test methods - Follow the Arrange-Act-Assert (AAA) pattern
- Name tests using the pattern
MethodName_Scenario_ExpectedBehavior - Use
[SetUp]and[TearDown]for per-test setup and teardown - Use
[OneTimeSetUp]and[OneTimeTearDown]for per-class setup and teardown - Use
[SetUpFixture]for assembly-level setup and teardown
Standard Tests
- Keep tests focused on a single behavior
- Avoid testing multiple behaviors in one test method
- Use clear assertions that express intent
- Include only the assertions needed to verify the test case
- Make tests independent and idempotent (can run in any order)
- Avoid test interdependencies
Data-Driven Tests
- Use
[TestCase]for inline test data - Use
[TestCaseSource]for programmatically generated test data - Use
[Values]for simple parameter combinations - Use
[ValueSource]for property or method-based data sources - Use
[Random]for random numeric test values - Use
[Range]for sequential numeric test values - Use
[Combinatorial]or[Pairwise]for combining multiple parameters
Assertions
- Use
Assert.Thatwith constraint model (preferred NUnit style) - Use constraints like
Is.EqualTo,Is.SameAs,Contains.Item - Use
Assert.AreEqualfor simple value equality (classic style) - Use
CollectionAssertfor collection comparisons - Use
StringAssertfor string-specific assertions - Use
Assert.Throws<T>orAssert.ThrowsAsync<T>to test exceptions - Use descriptive messages in assertions for clarity on failure
Mocking and Isolation
- Consider using Moq or NSubstitute alongside NUnit
- Mock dependencies to isolate units under test
- Use interfaces to facilitate mocking
- Consider using a DI container for complex test setups
Test Organization
- Group tests by feature or component
- Use categories with
[Category("CategoryName")] - Use
[Order]to control test execution order when necessary - Use
[Author("DeveloperName")]to indicate ownership - Use
[Description]to provide additional test information - Consider
[Explicit]for tests that shouldn't run automatically - Use
[Ignore("Reason")]to temporarily skip tests
Related skills
How it compares
Use for NUnit-specific .NET conventions rather than xUnit or MSTest test generation skills.
FAQ
What does csharp-nunit do?
Get best practices for NUnit unit testing, including data-driven tests
When should I use csharp-nunit?
Get best practices for NUnit unit testing, including data-driven tests
Is csharp-nunit safe to install?
Review the Security Audits panel on this page before installing in production.