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

标签 visual-studio testing visual-studio-2012

我有一个 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/

相关文章:

c# - .XML 中包含的 .DLL 注释

c++ - 我可以更改 Code::Blocks 自动缩进的行为吗?

c++ - 链接问题 C++、glew 和 SDL

windows - 如何衡量远程桌面性能?

java - 在我的 spring 3.2 测试中 Autowiring webapplicationcotnext

c++ - 如何开发跨平台的C++项目?

c# - GetWindowText() 函数并非始终正确执行

Windows Phone 模拟器错误 - 无法更改虚拟机的处理器

c++ - 未为项目设置 OutputPath 属性(C++、空白新解决方案、VS2017)

数组的PHP组合