7

我刚刚发现我得到的测试数量是我应该得到的两倍。当测试失败时发现了它,我得到了两次相同的测试失败。同样的测试,同样的一切。让我很困惑,但设法将其缩小到某个部分测试类。

它是一个部分类的原因是我把一个测试类一分为二,只是为了让它更干净一点。被测试的类有一个需要大量测试的方法,我认为将它们放在一个单独的文件中会更干净。但是由于使用了一两个辅助方法,我想我可以将类设为部分,这样两个文件仍然可以访问这些方法。

测试框架是 NUnit,测试是使用 TestDriven.Net 运行的。从单个测试方法(报告通过两个测试而不是一个)、类(通过的测试数量是两倍)和整个测试项目中运行测试。

通过使类不是局部的并且只是复制那些微小的辅助方法(可能将它们移动到单独的辅助类或稍后的东西)来设法解决问题。

现在......为什么会发生这种情况?我以为部分类被编译成一个类?这是一般的部分类、NUnit、Test-Driven.net 还是完全不同的问题?

4

1 回答 1

3

您可能将该[TestFixture]属性放在分部类的两个文件中。这将导致TestFixture在 IL 类定义中发出两次,NUnit 将运行相同的测试代码两次。你应该只[TestFixture]为你的部分类添加一个文件。

于 2010-01-19T14:16:36.853 回答