4

我有一個簡單的C#程序,它有一組單元測試。這是在Visual Studio 2010上開發的。現在,在另一臺計算機上,我嘗試使用Visual Studio 2012重新加載此解決方案並運行測試。我能夠成功地重建解決方案,但是沒有一個單元測試出現在測試瀏覽器中。 Visual Studio項目(解決方案)位於LaCie以太網網絡驅動器上。我將整個解決方案複製到本地C:驅動器,從網絡驅動器關閉解決方案,並在本地C:驅動器上重新打開復制的解決方案。現在,當我構建解決方案時,測試瀏覽器會顯示所有測試。我回去並打開了網絡驅動器上的副本,並再次嘗試瀏覽器顯示沒有測試。它說構建解決方案以查看測試列表,但是在成功構建包含主項目和單元測試項目的解決方案後,它仍顯示相同的消息。見下圖: enter image description here測試瀏覽器不顯示網絡驅動器的單元測試列表

爲什麼它有位於網絡驅動器上的項目導致單元測試失敗像這樣沒有失敗信息呢?

+0

是映射驅動器號(E :)或UNC(\\ machine \ folder)上的解決方案嗎? – bryanbcook

+0

您是否找到了解決方案?也許使用Caspol工具? – Tarnschaf

回答

3

重建應用程序的所有項目,包括任何包含測試類和測試方法的項目。它們將出現在測試瀏覽器中。

嘗試將異步無效更改爲異步任務。

[TestMethod] 
public async Task<Customers> GetCustomers() 
{ 
    var result = await ... 
} 

參考:Unit Test Explorer does not show up Async Unit Tests for metro apps

+0

正如我在我的問題中所說的,我已經重建了只有兩個項目(控制檯應用程序和單元測試項目)的整個解決方案,並且每個解決方案都只有一個C#源文件。每一個的構建都是成功的。但是當項目/解決方案位於網絡驅動器上時,測試資源管理器無法顯示任何測試。 這個「async void」到「異步任務」位於何處?在源中,屬性? – JonN

+0

我已經爲你編輯了一些示例代碼。請參考它。 –

+0

我查看了你的鏈接,但我沒有使用任何使用異步或等待關鍵字的測試方法。我所有的測試方法都是公共無效的。 – JonN

7

我們終於拿到了這對使用以下命令網絡共享工作:

setx COMPLUS_LoadFromRemoteSources 1 

caspol -m -ag 1.2 -url file://<path>* FullTrust 

例如,如果路徑是\\computer\share\,那麼第二個命令將是:

caspol -m -ag 1.2 -url file://\\computer\share\* FullTrust 

(注意在路徑的末端的星號)第一

關閉VS,運行的命令,重新啓動VS.這對我而言無需清理/構建我的項目。

+0

我現在正在獲取System.Security.SecurityException:該程序集不允許部分受信任的調用者。 結果StackTrace:\t at FrnklTest.UnitTest1.TestMethod1() – greg

0

隨着.Net 5您需要將test命令添加到命令的project.json名單。

"commands": { 
    "web": "Microsoft.AspNet.Server.Kestrel --server.urls=http://localhost:5000", 
    "test": "xunit.runner.dnx" 
    }, 
相關問題