VS 2012通用测试无法部署文件

时间:2013-02-07 20:52:14

标签: visual-studio testing visual-studio-2012

我在Visual Studio 2012中定义了Generic Test

如果我对所有路径进行硬编码,则测试运行完美。显然,我需要相对路径才能在构建服务器上工作。 但是,它无法部署我的文件,因为它查找的位置错误。

“使用此通用测试部署的其他文件:”我的解决方案相关文件如下所示(逐字):

<Solution Directory>\SubDir\Tester.exe

当测试实际运行时,输出显示以下错误:

  

警告:测试运行部署问题:无法获取该文件   测试指定的部署项'\ SubDir \ Tester.exe'   'generictest1':System.IO.DirectoryNotFoundException:找不到   路径'C:\ Program Files(x86)\ Microsoft Visual Studio的一部分   11.0 \ Common7 \ IDE \ SUBDIR \ Tester.exe”。

正如您所看到的,它使用的是Visual Studio的工作目录,而不是它声称的'<Solution Directory>'

关于如何解决这个问题的想法,或者我可能做错了什么?

1 个答案:

答案 0 :(得分:0)

关于此问题,有几个相关的已回答问题: Problems with DeploymentItem attribute C# DeploymentItem fails to copy file for MSTest unit test

然而,在VS 2012中,MS对MSTest进行了更改(遗憾的是,我找不到他们对这些更改所做的几篇博客帖子的网址 - 他们在其他新内容之间被提及了一些)所以现在当你有一个程序集作为部署项 - 从测试类,测试方法或TestSettings文件,它可能仍然被遗漏!

原因似乎是mstest从引用的程序集中查找类实例化。如果没有,则不会复制程序集。我们在使用框架的测试中遇到了这个问题,而框架又使用了NewtonSoft.JSON。我们必须创建一个虚拟测试类和方法,从NewtonSoft.JSON lib中实例化任何类,以便复制它的DLL。

放手一搏,手指交叉,确实有效。