2010-01-19 58 views
5

我刚刚发现我的测试次数增加了两倍,我应该得到的。当测试结束时发现它,并且我得到了两个相同的测试失败。相同的测试,所有的一切。让我感到非常困惑,但设法缩小到了某个部分班的测试班。NUnit,TestDriven.Net:使用部分测试类复制测试结果

它是一个部分类的原因是我已经分成两个测试类,只是为了使它更干净一点。被测试的类有一个特定的方法,需要进行很长时间的测试,我认为将它们放在单独的文件中会更清晰。但由于有一个或两个辅助方法使用,我想我可以让这个类是部分的,所以这两个文件仍然可以访问这些方法。

测试框架是NUnit,测试是使用TestDriven.Net运行的。在单个测试方法(报告两个测试通过而不是一个)内进行测试,在课堂上(通过测试次数的两倍)以及整个测试项目中进行测试。

管理通过使类不是部分的并且只是复制那些微小的帮助器方法(可能将它们移到单独的辅助类或稍后的某个方法)来解决问题。

现在......为什么地球上会发生这种情况呢?我认为部分班级被编入一个班级?这是一般的部分类的问题,NUnit,Test-Driven.net还是完全不同的东西?

回答

2

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

+0

Ooooh。这可能与它有关。但为什么'TestFixture'属性可以被添加两次到一个类?这只是没有道理......或者这是可能的原因吗? – Svish

+0

现在要测试它,并从其中一个部分类中删除'TestFixture'属性修复了问题:) – Svish