3

我最近切换到 vs2012 并且无法运行测试,因为引用项目的程序集没有部署到 TestResults 中的测试文件夹。我正在使用相同的 Local.testsettings 文件,该文件在 VS2010 中运行良好。我在 testsettings 文件的部署选项卡中添加了其他依赖项,并且这些依赖项已正确部署。我的测试程序集也正在部署,所以它只是没有部署的项目依赖项。

我尝试使用 vs2012 创建一个新的 Local.testsettings 文件,认为这两个版本之间可能略有不同,但这并没有解决我的问题。

有人知道 VS2012 在部署依赖程序集的方式上可能发生了一些变化吗?

谢谢

4

1 回答 1

1

关于这个问题有几个相关的已回答问题: Problem with DeploymentItem attribute C# DeploymentItem failed to copy file for MSTest unit test

但是,在 VS 2012 中,MS 对 MSTest 进行了更改(不幸的是,我找不到他们针对这些更改所做的几篇博客文章的 URL - 他们在他们所做的其他新内容之间有所提及)所以现在当你有一个程序集作为部署项 - 无论是来自测试类、测试方法还是 TestSettings 文件,它都可能仍然被遗漏!

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

试一试,祈祷它有效。

于 2013-07-15T11:46:42.417 回答