0

由於我的開發盒上的某些配置,我不得不將我的代碼移動到「文檔和設置」文件夾。由於我們的「受歡迎的」perforce VCS可能在特定場景中存在長文件路徑問題,因此我將驅動器(V :)映射爲指向代碼。這通常現在有一個例外:由於某種原因,集成到VS中的單元測試運行器不能再運行測試。我特別使用TestDriven.NET和ReSharper測試運行器來嘗試這個。兩者都顯示相同的奇怪行爲:沒有錯誤,測試只是不運行。VS 2010 - 驅動器映射的單元測試

0過去了,0失敗,0跳過

當我打開從C解決方案:\文件...和運行使用所述滑道測試,它的工作原理:

211通過,0失敗,0跳過

我第一次懷疑是一個64位問題(我們在Win7旗艦版x64上)。但是測試程序集被設置爲「任何CPU」,兩個跑步者都可以處理該場景並重定向到相應的NUnit可執行文件(......據我所知,糾正我,如果我錯了!)。使用NUnit GUI從C:\和V:\打開測試程序集很好。

我只能假設這與VS中的跑步者無法在文件路徑引用映射的驅動器時調用測試有關......但這聽起來很奇怪,所以我希望你們中的一些人看過這個問題之前可以給一些建議。

熬下來到一個問題:
有沒有人曾經在2010年與VS NUnit測試跑步者的問題不執行測試,可能是由於該解決方案是一個映射驅動器上?

的Win 7旗艦版64位
VS 2010終極
NUnit的2.5.8
TestDriven.NET 3
ReSharper的5.1

+0

如果您不使用MapDrives而是使用外置硬盤,該怎麼辦?對我來說,我注意到tests.dll被複制到AppData Temp目錄並從那裏運行?我覺得很奇怪....你有沒有遇到過這個問題? – IbrarMumtaz 2013-07-26 19:11:09

回答

0

好的,我們終於找到了解決這個問題的方法。雖然我們並未真正解決映射的V:驅動器作爲網絡驅動器的問題,但如果使用SUBST命令創建映射的驅動器,則它工作良好。

這裏的區別在於V:驅動器被視爲網絡位置,因爲我使用瀏覽器菜單中的「映射網絡驅動器」(我相信相當於NET命令)創建映射。當在網絡和本地驅動器之間調用程序集時,這可能會導致信任問題。一些人甚至得到了錯誤消息一起

未處理的異常線建立過程: System.Security.SecurityException: 該程序集不允許部分 信任的調用方。

使用SUBST我們五:驅動器指向本地(=信任)的位置,現在我們測試的所有預期運行。

要使用SUBST創建映射驅動器,請執行以下操作。這方面的例子映射在用戶的一個新的虛擬驅動器 「V」 的代碼位置(= [YOURNAME])文件夾:

C:> SUBSTν:C:\用戶[YOURNAME] \代碼

0

我還沒有嘗試過。但只是一個想法。你能檢查TestDriven.Net和NUnit的可執行文件的路徑嗎?您可能還想檢查對測試項目的引用。它是相對的還是絕對的?

+0

感謝您的回答。每當我有機會回到你身邊,我都會檢查。 – galaktor 2010-11-24 11:39:34

+0

TD.NET或NUnit的路徑不是問題。引用的測試項目是VS中的「項目引用」。這裏的問題似乎是VS爲TD.NET/NUnit的被調用的exes使用了一些奇怪的工作目錄。也可能是一個權限的事情。 – galaktor 2010-11-30 14:21:19