即使使用——debug, NUnit/Mono也不打印堆栈跟踪行号

本文关键字:打印 堆栈 跟踪 debug NUnit Mono | 更新日期: 2023-09-27 17:53:20

事情是这样的,在OS X上使用Xamarin

(.cs文件是一个非常简单的测试用例,会导致回溯)

编译

mcs /debug /lib:~(...)NUnit-2.6.3/bin/framework/:~(...)NUnit-2.6.3/bin/lib/ -r:nunit.framework.dll test.cs 

运行
mono --debug /Users/thiago/qm/nunit/NUnit-2.6.3/bin/nunit-console.exe test.exe
结果

1) Test Error : TestOne.testFirst
System.NullReferenceException : Object reference not set to an instance of an object
at TestOne.testFirst () [0x00000] in <filename unknown>:0 
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke    (System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr,     System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 

如果我使用Xamarin提供的单元控制台,它可以工作,但是它不能与几个库一起工作,等(例如:Monitor和其他一些)

只运行mono test.cs(导致堆栈跟踪)显示相应的行号。

即使使用——debug, NUnit/Mono也不打印堆栈跟踪行号

为我解决这个问题的是选项

-runtime=v4.0

(或与你的情况相对应的)

尝试像这样将"-config=Debug"参数传递给单元控制台:

mono --debug /Users/thiago/qm/nunit/NUnit-2.6.3/bin/nunit-console.exe test.exe -config=Debug