2010-01-19 116 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