我有一个相当大的 C# 库,最初是为 .NET 和 Windows 编写的,我们现在正在将其移植到 Mono 和 Linux。它使用 NUnit 进行了彻底的单元测试。移植相当简单,但现在我需要一些真正的调试功能,例如错误行号和断点。
我在 Windows 7 上使用 VS2010 或在 Debian 6.0.2 上使用 xbuild 进行编译,这真的无关紧要,因为二进制文件是完全兼容的。使用从 tarball 构建的 Mono 2.10.2 和 Debian experimental 的 NUnit 2.5.10 运行测试。
当我在 Visual Studio 中运行我的项目时,在我附加到 nunit 进程后调试工作正常。那么,有谁知道如何通过 NUnit 测试启用功能齐全的 Mono 调试器支持?
附言我看过this ,但我正在使用 xbuild 进行编译并使用 nunit-console 运行,因此我无法手动为编译器或 Mono 运行时提供参数。
提前致谢!
更新:我发现了 pdb2mdb 实用程序,但即使我使用它,我仍然无法获取行号,这让我相信代码没有使用 --debug 进行编译。但是由于我在 VS .sln 文件上使用 xbuild,而不是直接调用编译器,我该如何使用 --debug??
最佳答案
想通了。 Jon Skeet 再次出手相助:
转换为 mdb 后,我需要从 mono 命令内部运行 nunit-console.EXE,如下所示:
mono --debug /opt/mono-2.10/lib/mono/4.0/nunit-console.exe Test.dll -config=Debug
这花了比应该的时间更长的时间:P
关于c# - 尝试从 Mono NUnit 测试中获取调试输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7391836/