[英]Why my Resharper NUnit session stops working, but works in debug mode
我正在使用ReSharper来运行在C#/ NUnit中开发的单元测试。 当我对C ++ / CLI类进行单元测试时,我的所有测试都会通过,但随后弹出以下消息框; “任务运行者应用程序已停止工作”。 我正在测试的类没有任何不受管理的东西:
public ref class MyClass
{
public:
MyClass(
array<double>^ rawPrices,
array<DateTime>^ priceDates)
{
// some unmanaged C++ code runs here
}
(snip)
~MyClass()
{
}
private:
int numDays;
array<double>^ Prices;
array<double>^ Discounts;
};
当所有测试都成功时,会弹出消息。 但是,当我切换到调试单元测试时,测试才成功。 我正在测试的库是在Release x64模式下编译的。
这种奇特的行为是否表明MyClass有问题?
这种奇特行为的原因如下:我有一个递归方法,在无限循环中调用自己。
这可能不是你的答案,但它可能会有所帮助。 如果在代码中放置以下内容,则可以获得相同的对话框:
System.Diagnostics.Debugger.Break();
当然,当您在调试器中运行测试时,您会注意到这一点! 不过,您的代码可能会有类似的东西。 Break()语句导致调用非托管代码,如果没有附加调试器,我想它可能会导致Win32异常,Resharper让它无法处理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.