[英]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.