我有一个 Generic Test在 Visual Studio 2012 中定义。
如果我对所有路径进行硬编码,那么测试将完美运行。显然我需要相对路径才能在构建服务器上工作。 但是,它无法部署我的文件,因为它查找的位置错误。
在 "Additional files to deploy with this generic test:" 下,我的解决方案相关文件如下所示(逐字):
<Solution Directory>\SubDir\Tester.exe
当测试实际运行时,输出显示以下错误:
Warning: Test Run deployment issue: Failed to get the file for deployment item '\SubDir\Tester.exe' specified by the test 'generictest1': System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\SubDir\Tester.exe'.
如您所见,它使用 Visual Studio 的工作目录而不是 '<Solution Directory>'
它声称。
关于如何解决这个问题或者我可能做错了什么有什么想法吗?
最佳答案
关于这个问题有几个相关的已回答问题: Problems with DeploymentItem attribute C# DeploymentItem fails to copy file for MSTest unit test
但是,在 VS 2012 中,MS 对 MSTest 进行了更改(不幸的是,我找不到他们所做的关于这些更改的几篇博客文章的 URL - 在他们所做的其他新内容之间提到了他们)所以现在您有一个程序集作为部署项 - 无论是来自测试类、测试方法还是 TestSettings 文件,它可能仍被排除在外!
原因似乎是 mstest 从引用的程序集中查找类实例化。如果没有,程序集将不会被复制。我们在使用框架的测试中遇到了这个问题,而框架又使用了 NewtonSoft.JSON。我们必须创建一个虚拟测试类和方法来实例化 NewtonSoft.JSON 库中的任何类,以便复制其 DLL。
试一试,祝它好用。
关于visual-studio - VS 2012 通用测试无法部署文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14760772/