Token导航 LogoToken导航TokenDH.com
开发需要联网github未标认证来源可访问许可证需确认审计通过

dotnet-test-frameworks点网测试框架

Agent Skill

用于辅助测试设计、自动化测试、用例整理和回归验证。它适合让 Agent 编写单元测试、端到端测试、测试计划或根据失败日志定位问题。使用时需要确认项目测试框架、运行命令和夹具数据,避免为了通过测试而改坏真实逻辑;涉及浏览器或外部服务时,应区分本地模拟、测试环境和生产环境。

总安装

2,870

周安装

115

GitHub Stars

1,517

下载量

929
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:dotnet-test-frameworks(点网测试框架)
来源仓库:https://github.com/dotnet/skills
仓库路径:skills/dotnet-test-frameworks
安装命令:
npx skills add https://github.com/dotnet/skills --skill dotnet-test-frameworks
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/dotnet/skills --skill dotnet-test-frameworks

简介

dotnet-test-frameworks 提供 MSTest、xUnit、NUnit 等主流框架的识别与断言映射参考。

  • 适用于快速定位项目所用测试体系,辅助编写兼容的测试用例与验证逻辑。
  • 支持按框架分类检索断言语法,便于统一团队规范与迁移指导。
  • 不依赖特定宿主环境,可直接应用于 Codex、Claude 等 Agent 上下文。
  • 使用时需确认实际项目配置,避免因版本差异导致断言失效或误判。

SKILL.md

.NET Test Framework Reference

Language-specific detection patterns for.NET test frameworks (MSTest, xUnit, NUnit, TUnit).

Test File Identification

FrameworkTest class markersTest method markers
MSTest[TestClass][TestMethod], [DataTestMethod]
xUnit*(none — convention-based)*[Fact], [Theory]
NUnit[TestFixture][Test], [TestCase], [TestCaseSource]
TUnit[ClassDataSource][Test]

Assertion APIs by Framework

CategoryMSTestxUnitNUnit
EqualityAssert.AreEqualAssert.EqualAssert.That(x, Is.EqualTo(y))
BooleanAssert.IsTrue / Assert.IsFalseAssert.True / Assert.FalseAssert.That(x, Is.True)
NullAssert.IsNull / Assert.IsNotNullAssert.Null / Assert.NotNullAssert.That(x, Is.Null)
ExceptionAssert.Throws<T>() / Assert.ThrowsExactly<T>()Assert.Throws<T>()Assert.That(() =>..., Throws.TypeOf<T>())
CollectionCollectionAssert.ContainsAssert.ContainsAssert.That(col, Has.Member(x))
StringStringAssert.ContainsAssert.Contains(str, sub)Assert.That(str, Does.Contain(sub))
TypeAssert.IsInstanceOfTypeAssert.IsAssignableFromAssert.That(x, Is.InstanceOf<T>())
InconclusiveAssert.Inconclusive()*skip via [Fact(Skip)]*Assert.Inconclusive()
FailAssert.Fail()Assert.Fail() (.NET 10+)Assert.Fail()

Third-party assertion libraries: Should* (Shouldly), .Should() (FluentAssertions / AwesomeAssertions), Verify() (Verify).

Sleep/Delay Patterns

PatternExample
Thread sleepThread.Sleep(2000)
Task delayawait Task.Delay(1000)
SpinWaitSpinWait.SpinUntil(() => condition, timeout)

Skip/Ignore Annotations

FrameworkAnnotationWith reason
MSTest[Ignore][Ignore("reason")]
xUnit[Fact(Skip = "reason")]*(reason is required)*
NUnit[Ignore("reason")]*(reason is required)*
TUnit[Skip("reason")]*(reason is required)*
Conditional#if false / #if NEVER*(no reason possible)*

Exception Handling — Idiomatic Alternatives

When a test uses try/catch to verify exceptions, suggest the framework-native alternative:

MSTest:

// Instead of try/catch (matches exact type):
var ex = Assert.ThrowsExactly<InvalidOperationException>(
    () => processor.ProcessOrder(emptyOrder));
Assert.AreEqual("Order must contain at least one item", ex.Message);

// Or (also matches derived types):
var ex = Assert.Throws<InvalidOperationException>(
    () => processor.ProcessOrder(emptyOrder));
Assert.AreEqual("Order must contain at least one item", ex.Message);

xUnit:

var ex = Assert.Throws<InvalidOperationException>(
    () => processor.ProcessOrder(emptyOrder));
Assert.Equal("Order must contain at least one item", ex.Message);

NUnit:

var ex = Assert.Throws<InvalidOperationException>(
    () => processor.ProcessOrder(emptyOrder));
Assert.That(ex.Message, Is.EqualTo("Order must contain at least one item"));

Mystery Guest — Common.NET Patterns

Smell indicatorWhat to look for
File systemFile.ReadAllText, File.Exists, File.WriteAllBytes, Directory.GetFiles, Path.Combine with hard-coded paths
DatabaseSqlConnection, DbContext (without in-memory provider), SqlCommand
NetworkHttpClient without HttpMessageHandler override, WebRequest, TcpClient
EnvironmentEnvironment.GetEnvironmentVariable, Environment.CurrentDirectory
AcceptableMemoryStream, StringReader, InMemory database providers, custom DelegatingHandler

Integration Test Markers

Recognize these as integration tests (adjust smell severity accordingly):

  • Class name contains Integration, E2E, EndToEnd, or Acceptance
  • [TestCategory("Integration")] (MSTest)
  • [Trait("Category", "Integration")] (xUnit)
  • [Category("Integration")] (NUnit)
  • Project name ending in .IntegrationTests or .E2ETests

Setup/Teardown Methods

FrameworkSetupTeardown
MSTest[TestInitialize] or constructor[TestCleanup] or IDisposable.Dispose / IAsyncDisposable.DisposeAsync
xUnitconstructorIDisposable.Dispose / IAsyncDisposable.DisposeAsync
NUnit[SetUp][TearDown]
MSTest (class)[ClassInitialize][ClassCleanup]
NUnit (class)[OneTimeSetUp][OneTimeTearDown]
xUnit (class)IClassFixture<T>fixture's Dispose

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

34.81%
按下载量换算323

Claude

27.78%
按下载量换算258

Cursor

19.24%
按下载量换算179

Gemini CLI

8.9%
按下载量换算83

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills