FileNotFound使用TestDriven.NET和NUnit时出现异常

时间:2010-06-07 07:04:09

标签: c# unit-testing nunit testdriven.net filenotfoundexception

我正在用C#和XNA 4.0编写一个简单的乒乓球游戏来学习单元测试。使用的工具是TestDriven.NET和NUnit,所有最新版本。问题是,如果我用VS2010内部调试器测试代码,一切运行正常,但是当我从菜单中使用“Run Test(s)”时,应用程序会出现错误:

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

1 个答案:

答案 0 :(得分:1)

这里显而易见的问题是工作目录是什么,当TD.NET运行测试时。如果您的文件位于C:\game1\content\*,并且TD.NET在C:\TDNET(或其他)中运行时运行测试,那么显然尝试加载Content\Whatever.jpg将尝试打开{{1 ,不存在。简单的解决方法是为内容文件设置绝对路径(如果只是暂时的)以验证这是问题。

另一个问题是,您使用的是什么版本的TestDriven.net?他们从2.7的发行说明说:

  

966:XNA测试问题(工作目录问题)

     

请参阅herehere了解解决方法。

第一个站点链接到第二个站点,提供此解决方法:

  

第1步。

     

下载AssemblyUtilities.zip和   解压缩到您的项目并将其添加到   你的解决方案。

     

第2步。

     

对于您希望运行的每个临时测试,   使用命令:

     

C:\TDNET\Content\Whatever.jpg

     

这需要在内容之前调用   加载,例如在第一行。

     

临时测试的一个例子可以是   在这里看到:

Testdriven.NET.AssemblyUtilities.SetEntryAssembly();
     

第3步。

     

像普通人一样运行临时测试   将插入符号放入测试中,   右键单击并选择“运行测试”。