Testland
Browse all skills & agents

qa-unit-tests-net

.NET unit testing per-framework wrappers: 4 skills (fluentassertions, mstest-tests, nunit-tests, xunit-tests) and 2 agents (dotnet-test-author, dotnet-test-framework-selector).

Install this plugin

/plugin install qa-unit-tests-net@testland-qa

Part of role bundle: qa-role-sdet

qa-unit-tests-net

.NET unit testing per-framework wrappers + orchestrator agents. Three framework skills + 1 assertion-library reference + 2 agents.

Per-framework lifecycle scope. Does not duplicate qa-test-review (test code hygiene).

Components

TypeNameDescription
Skillxunit-testsxUnit.net (v2 + v3); current .NET de facto; [Fact]/[Theory]/[InlineData]; class+collection fixtures
Skillnunit-testsJVM-style attributes; [Test]/[TestCase]; constraint-model assertions; multiple parametrize attrs
Skillmstest-testsMicrosoft first-party; [TestClass]/[TestMethod]; tight Visual Studio integration
SkillfluentassertionsFluent assertion library (.Should() API); pairable with any test framework; v8+ commercial license
Agentdotnet-test-framework-selectorReads target csproj/sln + sibling test projects; detects existing convention; recommends one of xUnit / NUnit / MSTest with rationale
Agentdotnet-test-authorAuthors one .NET unit test given a target method + behavior spec; detects framework + FluentAssertions from csproj; emits idiomatic xUnit/NUnit/MSTest test file

Install

/plugin marketplace add testland/qa
/plugin install qa-unit-tests-net@testland-qa

Skills

fluentassertions

Reference for FluentAssertions - the canonical .NET fluent-assertion library pairable with xUnit / NUnit / MSTest; provides `.Should()` extension API (`.Should().Be()`, `.Should().BeOfType<T>()`, `.Should().Throw<T>()`, `.Should().BeEquivalentTo()` for deep equality, `.Should().Satisfy()` for predicates, `.Should().BeApproximately()` for floats); rich failure messages with object structure visualization. Body MUST include the 2024 license change note: v8+ commercial license required for new use; v7 is the last fully OSS version.

mstest-tests

Configures and runs MSTest (now MSTest.TestFramework v3) - Microsoft's first-party .NET test framework with `[TestClass]` / `[TestMethod]` / `[DataRow]` / `[DynamicData]` attributes; `[ClassInitialize]` / `[ClassCleanup]` / `[TestInitialize]` / `[TestCleanup]` lifecycle; `TestContext` injection; tight Visual Studio + dotnet test integration. Use when working with .NET on a MSTest codebase, or in environments standardized on Microsoft toolchain.

nunit-tests

Configures and runs NUnit - JVM-style attribute-driven .NET test framework with `[Test]` / `[TestCase]` / `[TestCaseSource]` / `[Values]` / `[Random]` parametrize attributes; `[SetUp]` / `[TearDown]` / `[OneTimeSetUp]` / `[OneTimeTearDown]` lifecycle; categories for selective runs; constraint-model assertion API (`Assert.That(actual, Is.EqualTo(expected))`); parameterized fixtures via `[TestFixture]` typed args. Use when working with .NET on a NUnit codebase or preferring constraint-model assertions over xUnit's classic style.

xunit-tests

Configures and runs xUnit.net (xUnit v2 + v3) - current de facto .NET test framework with `[Fact]` for single tests + `[Theory]` + `[InlineData]`/`[ClassData]`/`[MemberData]` for parametrized; collection fixtures (`[Collection]`) + class fixtures (`IClassFixture<T>`) for shared setup; output via `ITestOutputHelper`; parallel test config via assembly attribute. Use when working with .NET (C# / F# / VB.NET) on the modern test stack.

Agents

dotnet-test-author

Action-taking agent that, given a target method signature + a behavior spec, authors one .NET unit test file using the existing xUnit / NUnit / MSTest convention detected from the target `*.csproj` and FluentAssertions when present in dependencies. Composes the four `qa-unit-tests-net` skills (`xunit-tests`, `nunit-tests`, `mstest-tests`, `fluentassertions`) plus the `bogus-data` data-factory skill from `qa-test-data`. Distinct from `qa-shift-left/spec-to-suite-orchestrator` (language-agnostic, multi-stage spec-to-suite workflow) - this targets .NET only, detects the existing xUnit/NUnit/MSTest convention from the target csproj, composes the corresponding qa-unit-tests-net skill, and emits one test file per spec. Sibling of `qa-desktop/desktop-test-author` (which targets desktop drivers and emits desktop tests). Use when adding a single new .NET unit test to an existing test project.

dotnet-test-framework-selector

Action-taking agent that reads a target .NET project (`*.csproj` / `*.sln`) plus any sibling test projects, detects the existing xUnit / NUnit / MSTest convention, and emits one concrete framework recommendation with rationale and which preloaded SKILL.md to read next. Distinct from `qa-process/framework-choice-advisor` (pure-reference catalog of e2e/load frameworks like Playwright / Cypress / k6) - this agent reads the actual target .NET csproj/sln to recommend xUnit / NUnit / MSTest specifically. Use when starting a new .NET test project and the team has not yet committed to a framework.