You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取C#测试项目中测试的FullyQualifiedName格式列表?

获取MSTest/Xunit测试的FullyQualifiedName列表方案

针对MSTest项目

方法1:通过详细日志提取

执行以下命令,控制台会输出包含完整测试名称的详细日志:

dotnet test --logger "console;verbosity=detailed"

在输出结果中,每个测试的完整名称会以类似 Test Name: Your.Test.Namespace.TestClass.TestMethod 的格式出现,直接提取即可作为--filter参数的值。

方法2:解析TRX测试报告

  1. 生成TRX格式的测试报告:
dotnet test --logger trx
  1. 在项目的TestResults目录下找到生成的.trx文件,用XML解析工具打开。每个测试对应的<UnitTest>节点中,TestMethod属性的className(命名空间+类名)和name(方法名)拼接起来,就是完整的FullyQualifiedName,格式为{className}.{name}。

针对Xunit项目

方法1:使用Xunit命令行工具

  1. 全局安装Xunit控制台运行器:
dotnet tool install -g xunit.runner.console
  1. 执行以下命令列出所有测试的完整名称:
xunit.console <你的测试项目生成的DLL路径> -list

输出结果直接就是每个测试的FullyQualifiedName,可以直接复制用于dotnet test --filter参数。

方法2:通过JSON日志提取

执行命令生成包含详细测试信息的JSON日志:

dotnet test --logger "json;verbosity=detailed"

在输出的JSON内容中,每个测试条目都包含fullyQualifiedName字段,直接提取该字段值即可。

通用代码解析方案(适用于MSTest和Xunit)

如果需要程序化获取,可以用Roslyn分析测试项目的源代码:

  1. 遍历测试项目的所有C#代码文件。
  2. 使用Roslyn语法分析器识别带有测试特性的方法:
    • MSTest:标记了[TestClass]的类中的[TestMethod]方法
    • Xunit:标记了[Fact]或[Theory]的方法
  3. 拼接方法的命名空间、类名和方法名,得到FullyQualifiedName。

内容的提问来源于stack exchange,提问作者Marat Tim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 19:44:54