繁体   English   中英

为什么我的Resharper NUnit会话停止工作,但在调试模式下工作

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM