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

调试XUnit测试时无法进入外部DLL方法,提示ExecutionTimer.cs未找到

问题原因及解决方案

我帮你梳理几个最可能导致调试进入helper.GetEntity()时弹出提示、执行终止的原因,以及对应的解决办法:

1. 调试符号文件(.pdb)缺失或不匹配

调试器需要依赖被引用项目的.pdb文件来映射源代码,才能顺利进入方法内部。如果你的Helper项目没有生成调试符号,或者生成的.pdb和测试项目引用的.dll版本不一致,调试器就会无法定位代码,进而触发终止提示。

解决办法:

  • 打开Helper项目的属性窗口,切换到“生成”标签页,在“高级”设置里,把“生成调试信息”选项设置为完整或pdb-only;
  • 清理整个解决方案(右键解决方案→清理),然后重新生成所有项目(右键解决方案→重新生成),确保测试项目拿到的是最新的.dll和对应的.pdb文件。

2. 测试项目采用了直接DLL引用而非项目引用

如果你是手动添加了Helper项目输出的.dll文件作为引用,而不是通过项目引用关联同一解决方案里的Helper项目,调试器可能无法关联到Helper项目的源代码,导致调试失败。

解决办法:

  • 先删除测试项目中对Helper.dll的现有引用;
  • 右键测试项目→选择“添加→项目引用”,在弹出的窗口里勾选同一解决方案中的Helper项目,点击确定完成引用。这样Visual Studio会自动维护依赖关系,确保调试时能关联到源代码。

3. 调试器配置阻止了进入外部代码

默认情况下,Visual Studio的调试器可能开启了“仅我的代码”模式,或者没有启用对.NET框架/核心代码的步进支持,导致无法进入外部项目的方法。

解决办法:

  • 打开Visual Studio的“工具→选项→调试→通用”;
  • 取消勾选“仅我的代码”(如果需要调试Helper项目的代码);
  • 根据你的项目类型,勾选“启用.NET框架源代码步进”(.NET Framework)或“启用.NET Core源代码步进”(.NET Core/.NET 5+)。

4. GetEntity方法内部抛出未捕获异常

弹出的提示窗口也有可能是因为helper.GetEntity("tom")方法内部抛出了未处理的异常,直接导致测试执行终止,而不是调试器的问题。

解决办法:

  • 先尝试直接运行测试(不调试),看测试是否会失败,查看测试报告里的异常信息;
  • 或者在测试代码中添加try-catch块捕获异常:
try
{
    var studentEntity = helper.GetEntity("tom");
}
catch (Exception ex)
{
    Console.WriteLine($"异常信息:{ex.Message}\n堆栈跟踪:{ex.StackTrace}");
}

通过异常信息定位方法内部的问题,比如参数"tom"不存在导致的空引用、资源访问失败等。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:18:04