繁体   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