簡體   English   中英

使用TestDriven.NET和NUnit時FileNotFound異常

[英]FileNotFound Exception when using TestDriven.NET and NUnit

我正在用C#和XNA 4.0編寫一個簡單的Pong游戲,以學習單元測試。 使用的工具是TestDriven.NET和NUnit,所有最新版本。 問題是,如果我使用VS2010內部調試器測試代碼,一切運行正常,但是當我從菜單中使用“運行測試”時,應用程序會因錯誤而阻塞:

Test 'WindowsGame1.Game1.TestGameMenu' failed: Microsoft.Xna.Framework.Content.ContentLoadException : Error loading "SpaceBackground". File not found.
----> System.IO.FileNotFoundException : Error loading "Content\SpaceBackground.xnb". File not found.
(some more below...)

因此,它將在第一個textre加載時停止。 這是怎么回事?

如果您想簽出代碼,請在此處下載代碼http://www.mediafire.com/?qwnkmyqheum

顯而易見的問題是,當TD.NET運行測試時,工作目錄是什么。 如果您的文件位於C:\\game1\\content\\* ,並且TD.NET在C:\\TDNET (或其他任何版本)中運行時運行測試,則顯然嘗試加載Content\\Whatever.jpg將嘗試打開C:\\TDNET\\Content\\Whatever.jpg ,不存在。 一種簡單的解決方法是為您的內容文件設置一個絕對路徑(如果只是臨時設置)以驗證這是問題所在。

另一個問題是,您正在使用哪個版本的TestDriven.net? 他們從2.7發布的說明中說:

966:XNA測試問題(工作目錄問題)

解決方法請參見此處此處

第一個站點鏈接到第二個站點,第二個站點提供以下解決方法:

第1步。

下載AssemblyUtilities.zip並解壓縮到您的項目中,然后將其添加到您的解決方案中。

第2步。

對於您希望運行的每個臨時測試,請使用以下命令:

Testdriven.NET.AssemblyUtilities.SetEntryAssembly();

這需要在內容加載之前調用,例如在第一行中。

臨時測試的示例可以在此處查看:

 public static void myAdHocTest() { Testdriven.NET.AssemblyUtilities.SetEntryAssembly(); //Do your testing here } 

第三步

像往常一樣運行臨時測試,方法是將插入符號放入測試中,右鍵單擊並選擇“運行測試”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM