TFS不部署引用的程序集的时候测试目录生成服务器上(TFS not deploying refere

2019-07-21 02:18发布

我有了在溶液中的其他组件引用编码的UI测试项目。 不知怎的,一些组件不会被复制到TestResults/Out目录,而另一些被复制。 所有组件都Copy Local选项true (不知道它是否真的很重要,虽然),并在其他选项绝对平等。 当我从VS2010本地启动测试的所有组件被复制,而不是构建服务器时。

如果我使用[DeploymentItem]属性,迫使他们成功地部署这些“淘气”组件部署。

我无法得到它-我一直认为,如果引用组件(在References的部分Solution Explorer ),该组件将被复制到TestResults/Out[DeploymentItem]需要复制一些.XML和其他配置文件。

Answer 1:

我以前见过这个。 您的测试项目引用的其他项目,但是当运行的测试,你会发现,组件是不存在的TestRun Out文件夹。

不同于运行从一个固定位置的单元测试其他测试运行,MSTest的副本,它需要向其中测试执行的测试运行文件夹中的组件。 该设计允许你测试运行之间的对比测试结果,覆盖范围,输出。

常见的误解是,像“复制本地”莫名其妙编译设置会以某种方式影响其依赖用于测试 ,这是不正确的。 MSTest的使用反射来确定所需要的测试运行组件的引用。

您所看到的错误很可能会造成的,因为你所引用的组件,但试件不直接使用它。 您可以通过使用IL检查工具(DotPeek,反射器等),来看看测试程序集引用验证这一点。 (这通常是,在所述XAML引用组件WPF项目的问题。)

要修正,要么使用DeploymentSettings到组件复制到输出文件夹; 或使用该组件的测试项目。 例如,添加以下到您的测试项目将发出IL确保大会部署:

var type = typeof(AssemblyNotBeingCopied.MyClass);


文章来源: TFS not deploying referenced assembly to test dir when on build server