2013-02-11 84 views
2

我面临这种来自我的Visual Studio的异常行为,突然我的测试二进制文件(mytestsolution.dll)和引用中添加的依赖项二进制文件从我的Bin文件夹中复制到TestResults \\ Out文件夹中并启动从那里执行?为什么我的测试二进制文件被复制到TestResults <somepath> out文件夹中?

这会导致我的测试失败,因为我的GetExecutionAssembly()提供了Out文件夹的路径,而不是Bin文件夹的一些相关二进制文件存在的路径?

任何人都可以帮我解决这个问题吗?

+0

你检查项目的构建设置:'属性 - >生成 - >输出Path'? – 2013-02-11 13:43:47

+0

输出路径仅为bin文件夹。该文件是在bin文件夹中创建的,但是当从visual studio执行时,它将被复制到测试结果文件夹并从那里执行 – satya 2013-02-11 19:52:33

回答

0

更改属性Copy LocalFalse

  1. 右键点击mytestsolution.dll然后单击Properties
  2. 从那里更改Copy Local
  3. 构建解决方案,并立即检查。
0

这是MSTest的默认行为。解决方案编译后,testrunner将直接引用复制到TestResults \ _TestRun_ \ Out文件夹。更改编译设置(CopyLocal)不会影响测试运行。

如果你有被要求的依赖,但不是在TestRun输出文件夹,您有几种选择:

  1. 添加到测试装配这些组件的引用。由于测试运行器使用反射来确定依赖关系,因此您需要引用该程序集中的类。

  2. 修改当前测试设置并将依赖关系包含为部署项目。

0

您可以通过在测试运行配置中禁用部署来修复此问题。例如,在VS 2008中:测试>编辑测试运行配置>本地测试运行>部署>启用部署=关闭。

查看Test Deployment Overview了解更多详情。

2

Visual Studio 2010中创建一个文件夹TestResults和部署与下面的架构子目录中的所有相关的文件:username_computername日期时间

如果您的解决方案没有.testsettings文件,这是正常行为。 .testsettings文件位于文件夹解决方案项目

如果你有一个.testsettings文件,这取决于设置在部署部分进行部署。如果启用部署被选中,TestResults文件夹将被创建并填充。

enter image description here

在某些情况下,它是可能的TestResults文件夹将被创建,尽管启用的部署被禁用。但是在这种情况下,该文件夹仅用于某些临时文件,而不用于测试的执行文件。

欲了解更多相关信息,请参阅:

MSDN - Test Deployment Overview

相关问题