【问题标题】:Breakpoints are not hit while debugging xunit test that includes a large string调试包含大字符串的 xunit 测试时未命中断点
【发布时间】:2018-08-29 15:49:41
【问题描述】:

我有一个测试,它使用一些 Base64 编码的字符串作为方法的参数。测试运行并通过(如果我将方法修改为失败状态,则测试失败)。关键是测试框架按预期执行

当我尝试通过 Visual Studio(或 VSCode)调试测试时,调试器启动,加载符号,然后退出,我的测试用例显示通过状态。没有命中断点。

我只通过试错来识别这个大字符串,一次删除一个测试用例,直到我能够成功命中断点。

此方法重现了该问题。即使它没有被使用,注释掉 b64 并且你应该能够通过调试器命中断点,取消注释它并且断点失败。

xunit 2.3.1 和 2.4.0 会发生这种情况;不确定它是否甚至是一个 xuint 事情,但我试图弄清楚我可以做些什么来调试这个方法。

运行 dotnet new xunit 并将此测试放入:https://gist.github.com/fuzzzerd/8347a8609fd1ccabdfaeea564d42a976(对于问题正文而言,片段太大)

【问题讨论】:

  • 如何将字符串存储在文本文件中并从那里获取,而不是硬编码字符串?
  • @RandRandom 如果我无法找出根本原因,我可能会使用这种解决方法,我只是想知道为什么它会导致调试器/断点感到悲痛?

标签: c# .net debugging xunit


【解决方案1】:

看起来我遇到了这个问题:https://github.com/dotnet/roslyn/issues/20118。没有发布解决方法,但从文件加载确实成功解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-03
    • 1970-01-01
    • 1970-01-01
    • 2011-05-18
    • 2010-11-05
    • 2017-12-29
    • 2011-10-30
    • 2017-10-07
    相关资源
    最近更新 更多