我刚刚发现我的测试次数是我应该得到的两倍。在测试中断时我发现了两次相同的测试失败。同样的测试,一切都一样。让我很困惑,但设法将其缩小到某个部分类的测试类。
它是一个部分类的原因是我把测试类分成两部分,只是为了让它更干净一点。被测试的类有一个需要大量测试的特定方法,我认为将它们放在一个单独的文件中会更清晰。但是由于使用了一个或两个辅助方法,我认为我可以将该类设置为部分,因此两个文件仍然可以访问这些方法。
测试框架是NUnit,测试是使用TestDriven.Net运行的。从单个测试方法(报告两个测试通过而不是一个),在类(获得测试数量的两倍)和整个测试项目中进行测试。
管理通过使类不是局部的来修复问题,只是复制那些微小的帮助器方法(可能会将它们移动到单独的辅助类或其他东西)。
现在......为什么这发生了?我认为部分类被编译成一个类?这是一般的部分类,NUnit,Test-Driven.net还是完全不同的问题?
答案 0 :(得分:3)
您可能将[TestFixture]
属性放在分部类的两个文件中。这将导致TestFixture
在IL类定义中发出两次,NUnit将运行两次相同的测试代码。您只应在部分类的其中一个文件中添加[TestFixture]
。