我刚刚发现我正在运行的测试数的两倍,我应该已经得到。发现它时,测试坏了,我有两个相同的测试失败。同样的测试,同样的一切。让我很困惑,但设法将它缩小到一定的测试类,这是一个局部类。

它是一个局部的类是,我不得不一分为二的测试类的原因,这只是为了更一点干净。被测类有这样的需要长距离的测试一定的方法,我认为这将是清洁剂有那些在一个单独的文件。但是,由于有一个或两个辅助方法使用我想我可以只作类偏所以两个文件仍然访问这些方法。

在测试框架是NUnit的并且测试通过使用TestDriven.Net运行。然从一个单一的测试方法中所述的测试两者(报道两个测试通过,而不是一个),在类(有两次测试的数量传递),并且在整个测试项目。

管理通过使类不是局部的,只是重复那些细小的辅助方法(可能搬完到一个单独的辅助类或某事之后),以解决这个问题。

现在......为什么地球上会出现这种情况?我认为部分类被编译成一个类?这是与一般的部分类的问题,NUnit的,Test-Driven.net或完全不同的东西?

有帮助吗?

解决方案

您可能把[TestFixture]属性在部分班级的两个文件。这将导致TestFixture在IL类定义被发射两次和NUnit将运行同样的测试码两次。你应该只在其中的一个文件添加[TestFixture]您的分部类。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top