测试如何在TFS 2012生成中引用父源目录中的外部资源

本文关键字:资源 外部 引用 TFS 2012生 测试 | 更新日期: 2023-09-27 18:13:39

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

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

正如您所知,TFS会将所有输出复制到与src处于同一级别的bin文件夹中,该文件夹具有所需的Resources文件夹。无法将此文件夹复制到目录结构中足够高的位置,因此测试通过了生成代理。

我希望这两个问题中的任何一个都能给我一个解决这个问题的权宜之计:

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

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

测试如何在TFS 2012生成中引用父源目录中的外部资源

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

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

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

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

[TestMethod]
[DeploymentItem("mytestdata.xml")]