2

當單元測試類是主項目(TestAccount)的一部分時,一切正常。需要幫助將nUnit測試移動到單獨的項目中

的每一篇文章我讀過有關單元測試建議把測試在一個單獨的項目,所以我...

  • 添加另一個項目 (TestAccount.UnitTests)的解決方案
  • 移動單元測試類(AccountTests.vb)至TestAccount.UnitTests
  • 並加入在TestAccount.UnitTests到TestAccount基準(本地複製=真)

該解決方案編譯時沒有任何警告。然而,NUnit的無法訪問主項目,並提供了以下錯誤每個測試:

System.IO.FileNotFoundException:未能加載文件或程序集「TestAccount,版本= 1.0.0.0,文化=中立, PublicKeyToken = null'或它的一個依賴關係。該系統找不到指定的文件。

我在做什麼錯?

(我是有nunit.framework.dll中類似的麻煩,直到我將其添加到GAC)

screenshot of Solution Explorer http://img440.imageshack.us/img440/4862/nunitsolutionexploreree3.jpg

的Visual Studio 2005
.NET 2.0
NUnit的2.4.8(.NET 2.0版本)

[編輯]我只有從Visual Studio運行nUnit(作爲外部命令)時出現此問題。如果我單獨加載nUnit控制檯,它工作正常。

[編輯] Omar:是的,我有其他項目的參考。這裏是一個screenshot of my solution explorer

我想我可能只需要單獨運行nUnit控制檯(而不是通過VS的外部工具)。

回答

2

我發現一個bug report,說Visual Studio錯誤地擴展了TargetPath和TargetDir宏。它們擴展到obj \目錄,而不是bin \

[更新]問題/解決方案實際上在文檔的Visual Studio Support部分進行了討論。由於「目標」宏指向obj \,因此不能立即使用它們。我結束了使用的參數字段下面的表達式:

$(ProjectDir)bin/Debug/$(TargetName)$(TargetExt) 
0

這可能聽起來很愚蠢,但我打算明確你有沒有給你的測試項目引用另一個項目?

這類問題常見的其他問題是使用無法從其他項目/名稱空間訪問的內部類。

0

另外,還要確保你的彙編輸出路徑對應於什麼是你NUnit的配置設置。我有相同的設置,但我不必設置'copy local = true'

0

問題是它沒有找到應用程序本身或應用程序的某個依賴項?您可以嘗試使用FileMon或Fusion Log Viewer來查看究竟發生了什麼故障。有可能這個問題不是在尋找應用程序本身,而是在尋找另一個依賴關係。確保任何依賴項的「複製本地」設置爲「真」。

您在VisualStudio中如何啓動NUnit GUI?如果您在項目屬性下設置「啓動外部程序」,則可以指定工作目錄。您可能需要將其更改爲測試dll的構建位置。