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

Unit testing NUnit,TestDriven.Net:使用部分测试类复制测试结果,unit-testing,nunit,partial-classes,testdriven.net,Unit Testing,Nunit,Partial Classes,Testdriven.net,我刚刚发现我得到的测试运行次数是我应该得到的两倍。当一个测试失败,我得到两个相同的测试失败时,我发现了它。同样的测试,同样的一切。这让我很困惑,但设法将其缩小到某个测试类,该类是部分类 它是部分类的原因是我将一个测试类一分为二,只是为了让它更干净一点。被测试的类有一个特定的方法,需要进行长范围的测试,我认为将这些方法放在一个单独的文件中会更干净。但是由于使用了一两个helper方法,我想我可以将类变成部分的,这样两个文件仍然可以访问这些方法 测试框架是NUnit,测试是使用TestDriven.

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

它是部分类的原因是我将一个测试类一分为二,只是为了让它更干净一点。被测试的类有一个特定的方法,需要进行长范围的测试,我认为将这些方法放在一个单独的文件中会更干净。但是由于使用了一两个helper方法,我想我可以将类变成部分的,这样两个文件仍然可以访问这些方法

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

通过使类不是局部的,而只是复制那些微小的帮助器方法(以后可能会将它们移动到单独的帮助器类或其他东西),解决了这个问题


现在。。。这究竟是为什么?我以为部分类被编译成一个类?这是一般的分部类、NUnit、Test-Driven.net还是完全不同的问题?

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

ooh。这可能与此有关是的。但是为什么可以将
TestFixture
属性添加到一个类中两次呢?这根本没有道理。。。或者这是可能的原因吗?现在要测试它,并从其中一个分部类中删除
TestFixture
属性修复了这个问题:)