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

如何筛选耗时超2毫秒的.NET单元测试及生成测试分析报告?

针对单元测试耗时分析的解决方案

1. 筛选耗时超过2毫秒的测试

方法一:直接过滤命令行输出(PowerShell)

dotnet test的详细输出会包含每条测试的耗时信息,你可以用PowerShell的字符串匹配和数值过滤直接提取符合条件的测试:

dotnet test -l "console;verbosity=detailed" | Select-String -Pattern "Test Duration: (\d+\.\d+) ms" | Where-Object { [double]$_.Matches.Groups[1].Value -gt 2 }

这个命令会:

  • 执行测试并输出详细日志
  • 匹配所有包含Test Duration: X.X ms的行
  • 筛选出耗时数值大于2的测试条目

方法二:解析TRX日志文件

如果需要更精准的分析,可以先生成TRX格式的测试日志,再解析XML内容筛选:

  1. 生成TRX日志:
    dotnet test -l "trx;LogFileName=test_results.trx"
  2. 用PowerShell解析日志并筛选:
$trxContent = [xml](Get-Content test_results.trx)
# 筛选耗时超过2ms的测试(TRX中Duration格式为PT0H0M0.003S,转换为秒后大于0.002即超2ms)
$longRunningTests = $trxContent.TestRun.Results.UnitTestResult | Where-Object {
    $durationSec = [double]$_.Duration.Replace("PT", "").Replace("H", ".").Replace("M", ".").Replace("S", "")
    $durationSec -gt 0.002
}
# 输出测试名称和耗时
$longRunningTests | Select-Object TestName, Duration

2. 生成带指标与分析的测试报告

使用ReportGenerator工具

这是.NET生态中常用的测试报告生成工具,支持将TRX、JUnit等格式的日志转换为可视化的HTML报告,包含耗时统计、通过率、测试趋势等指标:

  1. 全局安装工具:
    dotnet tool install -g dotnet-reportgenerator-globaltool
  2. 生成TRX测试日志(同方法二第一步)
  3. 生成HTML报告:
    reportgenerator -reports:test_results.trx -targetdir:test_report -reporttypes:Html
    生成的test_report目录中,打开index.html就能看到完整的测试分析报告,其中可以按耗时排序查看所有测试,还能看到每个测试类、命名空间的整体耗时分布。

其他内置选项

如果不需要复杂分析,dotnet test本身支持生成HTML报告(部分测试框架支持),比如:
dotnet test -l "html;LogFileName=test_report.html"
不过这个内置报告的分析维度较少,更适合快速查看结果。

内容的提问来源于stack exchange,提问作者mahmood ansari

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 05:15:24