2

当单元测试类是主项目(TestAccount)的一部分时,一切正常。需要帮助将nUnit测试移动到单独的项目中

的每一篇文章我读过有关单元测试建议把测试在一个单独的项目,所以我...

  • 添加另一个项目 (TestAccount.UnitTests)的解决方案
  • 移动单元测试类(AccountTests.vb)至TestAccount.UnitTests
  • 并加入在TestAccount.UnitTests到TestAccount基准(本地复制=真)

该解决方案编译时没有任何警告。然而,NUnit的无法访问主项目,并提供了以下错误每个测试:

System.IO.FileNotFoundException:未能加载文件或程序集“TestAccount,版本= 1.0.0.0,文化=中立, PublicKeyToken = null'或它的一个依赖关系。该系统找不到指定的文件。

我在做什么错?

(我是有nunit.framework.dll中类似的麻烦,直到我将其添加到GAC)

screenshot of Solution Explorer http://img440.imageshack.us/img440/4862/nunitsolutionexploreree3.jpg

的Visual Studio 2005
.NET 2.0
NUnit的2.4.8(.NET 2.0版本)

[编辑]我只有从Visual Studio运行nUnit(作为外部命令)时出现此问题。如果我单独加载nUnit控制台,它工作正常。

[编辑] Omar:是的,我有其他项目的参考。这里是一个screenshot of my solution explorer

我想我可能只需要单独运行nUnit控制台(而不是通过VS的外部工具)。

回答

2

我发现一个bug report,说Visual Studio错误地扩展了TargetPath和TargetDir宏。它们扩展到obj \目录,而不是bin \

[更新]问题/解决方案实际上在文档的Visual Studio Support部分进行了讨论。由于“目标”宏指向obj \,因此不能立即使用它们。我结束了使用的参数字段下面的表达式:

$(ProjectDir)bin/Debug/$(TargetName)$(TargetExt) 
0

这可能听起来很愚蠢,但我打算明确你有没有给你的测试项目引用另一个项目?

这类问题常见的其他问题是使用无法从其他项目/名称空间访问的内部类。

0

另外,还要确保你的汇编输出路径对应于什么是你NUnit的配置设置。我有相同的设置,但我不必设置'copy local = true'

0

问题是它没有找到应用程序本身或应用程序的某个依赖项?您可以尝试使用FileMon或Fusion Log Viewer来查看究竟发生了什么故障。有可能这个问题不是在寻找应用程序本身,而是在寻找另一个依赖关系。确保任何依赖项的“复制本地”设置为“真”。

您在VisualStudio中如何启动NUnit GUI?如果您在项目属性下设置“启动外部程序”,则可以指定工作目录。您可能需要将其更改为测试dll的构建位置。