2010-10-09 152 views
3

如果我沒有弄錯,NUnit是單元測試的事實上的標準,但是我剛剛下載了它,寫了一個簡單的測試,然後顯然我必須啓動GUI並加載我的組件,它簡直失敗了。C#.NET 4.0測試框架?

我試圖編輯

C:\Program Files (x86)\NUnit 2.5.7\bin\net-2.0\nunit.exe.config 

至於建議in this question,但沒有任何工作,所以我嘗試下載NUnit的源代碼,並在VS2010編譯它,但它甚至不進行編譯。說找不到punit.framework.dll解決方案說「不包含AllTestsExecuted的定義」,所以我在這裏感到有點沮喪。你會認爲會有一個易於使用和運行的.net 4的框架,不是嗎?

所以我的問題是,我如何得到NUnit的工作,或者是否有另一個框架,會導致我沒有痛苦?

+0

當你說它'失敗'時,你究竟是什麼意思?什麼是錯誤信息? – Nobody 2010-10-09 22:19:10

+0

NUnit通常可以和.NET 4.0一起工作,沒有任何問題。你在64位操作系統上運行嗎?如果exe文件是爲x86編譯的,並且您試圖運行64位版本的NUnit,它將拒絕加載您的程序集。 – 2010-10-09 22:23:59

+2

ReSharper具有出色的NUnit集成和運行中的VS單元測試等。 – 2010-10-09 22:24:56

回答

4

您不必使用NUnit GUI來運行測試。您可以在Visual Studio中使用TestDriven.NET。另外,如果你碰巧使用了Resharper,那麼它還有一個單元測試運行器,它也可以與NUnit一起工作。

+0

ReSharper!我有它,但它沒有安裝...並不需要它(直到現在,無論如何)。 – mpen 2010-10-09 22:39:07

2

如果你沒有做任何與衆不同的事情,我推薦Microsoft's Unit Testing Framework。我發現VS集成太容易擔心NUnit。我同意NUnit似乎是事實上的標準,但如果你正在尋找快速簡單的東西。對於典型的Visual Studio程序員恕我直言,微軟的方式是最簡單的。

+0

我在'Add Reference> .NET'下看不到'Microsoft.VisualStudio.TestTools.UnitTesting' ...它在哪裏? – mpen 2010-10-09 22:30:23

+0

對於.NET 4,實際上使用位於C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ PublicAssemblies \ Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll中的Microsoft.VisualStudio.QualityTools.UnitTestFramework。最簡單的做法是隻添加一個新項目,還有一個「test」子類,其中只包含Test Project項目模板。 – 2010-10-11 01:45:30

0

NUnit實際上使用起來非常簡單,所以我認爲它更可能是你在某個地方犯了錯誤,而不是軟件。

確保你關注了this guide

  • 確保在正確的位置和所有相關的程序集中引用了[TestFixture]和[Test]屬性。
  • 確保您在NUnit GUI中加載了正確的dll。

如果它的GUI是問題,則可以使用Resharper的單元測試功能。

+0

這是當我嘗試加載我的程序集時拋出錯誤的GUI。這是我遵循的指南。 – mpen 2010-10-09 22:32:24

0

如果您使用Visual Studio 2010,則可以使用MSTest。只需單擊CTRL + ALT + R,它將運行測試並在Visual Studio中顯示結果。

如果我沒有弄錯,那麼同樣的測試運行者也會爲NUnit工作。

1

我不是一個C#程序員(幸運;-)),但我聽說過xUnit好東西。無論你想要什麼,測試都可以運行(命令行,GUI,Visual Studio集成等等),它看起來合理簡單易用。

1

對於NUnit的GUI測試運行器,請確保您選擇了正確的框架版本。它在「文件」菜單中。如果您的測試或任何依賴項是32位,請確保您運行的是32位版本的測試運行器。

Testdriven.net是一個更好的測試跑步者,但我也喜歡使用NUnit的GUI跑步者。

+0

我看到的只有「新建」,「打開」和「退出」。其他一切都變灰了。考慮到「打開」部分失敗,我甚至沒有機會選擇運行時。 – mpen 2010-10-09 22:40:37

+0

聽起來像一個x86/x64不匹配,雖然這在一段時間內沒有發生過我不知道它是什麼樣子。 – 2010-10-09 22:43:02

+0

是啊。可以,NUnit甚至可以在64位模式下運行? – mpen 2010-10-09 23:30:42