1

我正在设置一个 TFS 2012 构建代理,并且在引用外部文件的单元测试中遇到了一个小问题。(是的,是的,这很糟糕......那里没有参数!我仍然需要运行构建)测试使用的是 MSTest (VisualStudio.TestTools.UnitTesting) 框架。

Resources目前,解决方案根目录下有一个文件夹,所有测试(不幸的是在子目录中处于不同深度)加载具有某种级别的相对路径( ..\\..\\..\\Resources\\resource.txt)的文件。

如您所知,TFS 将所有输出复制到与 具有bin相同级别的文件夹中src,该文件夹具有所需的Resources文件夹。无法将此文件夹复制到目录结构中足够高的位置,以便构建代理通过测试。

我希望这些问题中的任何一个都可以为我提供解决此问题的权宜之计:

  1. 是否有任何环境变量(或类似的东西)可用于检测单元测试是否正在通过 TFS 构建代理运行并相应地更改代码中资源文件的路径?

  2. 有没有一种简单的方法来告诉 TFS 将文件输出到bin与在 Visual Studio 中构建时具有相同层次结构的文件夹中?(我说简单的原因是因为我发现了一些相当长的构建修改可能可以处理这个问题)

4

1 回答 1

3

选项 1:是的,您可以将文件夹及其内容复制到 \bin\Debug 文件夹:

  1. 将文件夹添加到您的测试项目
  2. 在该文件夹中添加文件并在 Visual Studio 中设置每个文件属性“复制到输出目录”:“始终复制”

选项2:您也可以将文件放入资源文件

选项3:或使用属性在测试中声明文件:

[TestMethod]
[DeploymentItem("mytestdata.xml")] 
于 2013-05-15T19:32:01.193 回答