我怎样才能得到Resharper中止测试的理由?

我正在使用Resharper 9.2和NUnit 2.6.4以及~120unit testing。 有时当我开始运行测试时,resharper会在随机测试时停止并将其状态设置为Aborted并跳过其他测试。 这非常不方便,因为我手动运行了其余的测试。 有没有办法得到堕胎的原因,一些resharper测试运行日志或NUnit中的东西,以帮助解决我的问题?

我也尝试使用本机NUnit运行程序,但它有时会抛出不包含任何有用信息的exception(某些远程处理exception,它没有任何用处)

我试图设置“并行运行1个程序集”和“为每个程序集使用单独的AppDomain进行测试”,但它没有帮助。

UPD

我在调试模式下重现了这一点,调试unit testing刚刚关闭,在输出窗口中我发现:

The program '[4572] JetBrains.ReSharper.TaskRunner.CLR4.exe: Program Trace' has exited with code 0 (0x0). The program '[4572] JetBrains.ReSharper.TaskRunner.CLR4.exe: Managed (v4.0.30319)' has exited with code -1073741819 (0xc0000005) 'Access violation'. 

似乎问题是外部库的不安全代码。

在这种情况下,resharper似乎没有任何关系。 我有访问冲突错误,在这种情况下,测试程序进程将被关闭。 .net无法处理此错误,因为它不在托管级别。 唯一的办法是检查输出窗口是否有错误信息:“程序'[4572] JetBrains.ReSharper.TaskRunner.CLR4.exe:托管(v4.0.30319)’已退出,代码为-1073741819(0xc0000005)’访问当你的测试无缘无故地中止时“违规”。 如果您可以访问本机代码,则可以进行调试。

在我的情况下,问题是不正确使用COM对象和Dispose()方法。 我已经修好了,现在一切都还好 – 没有“沉默”堕胎。

我还遇到了Resharper决定不断中止测试的案例。 它并没有打电话给无人管理或任何怪异的东西。

答案是它有一个无意的递归调用导致stackoverflowexception。 当我决定“调试”而不是“运行”它们时,这很明显。

因此,我认为一般的概念是“中止”测试是出现问题的症状,但错误并没有导致从代码本身抛出exception,而是从CLR或其他东西抛出。

我只有一个测试基本上没有运行任何代码,除了设置一个整数值。 我只是添加了我的第一次测试来设置我的unit testing,所以我快速添加了setup()和create()测试。

每次我跑,我得到测试中止错误。 测试中止

调试失败

调试断点甚至不会在[Setup] TestSetup()方法内停止。

我删除了TestSetup()和[Test] void Create()方法,它会运行,但结果当然没有结果。

我重新添加了[SetUp] TestSetup()方法,它也没有中止。 我再次添加了[Test] void Create()方法,它再次开始中止而无法中断。

最后,我看到了问题。 你看到了这个问题吗?

 [SetUp] public void TestSetup() { string test = "this thing"; } [Test] void Create() { int x = 5; string s1 = "super"; } 

扰流板

糟糕,我忘了将Create()方法设置为public。