NUnit,TestDriven.Net:使用部分测试类复制测试结果

时间:2010-01-19 13:50:35

标签: unit-testing nunit partial-classes testdriven.net

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

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

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

管理通过使类不是局部的来修复问题,只是复制那些微小的帮助器方法(可能会将它们移动到单独的辅助类或其他东西)。

现在......为什么这发生了?我认为部分类被编译成一个类?这是一般的部分类,NUnit,Test-Driven.net还是完全不同的问题?

1 个答案:

答案 0 :(得分:3)

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