我有一组单元测试,我想在Team Foundation Build中运行。这些测试从文件系统中读取一组文件,并检查错误。我无法将测试文件数据移动到我的测试DLL中,因为重点是检查安装程序中发送/捆绑的这些文件是否有效。
当我在本地运行测试时,这很好用,因为测试的DLL依赖于这些文件,因此,Visual Studio在构建测试DLL时会复制它们。但是,当在构建服务器上运行时,构建服务器会将测试DLL与其元数据中声明的直接或间接引用的程序集一起复制到另一个目录中。因此,测试无法找到受测试的文件,因为它们未被声明为“依赖程序集”(并且不能)。
我该如何解决这个问题?
答案 0 :(得分:3)
在.testsettings
对话框中,有一个名为Deployment的类别。如果启用此功能,则可以添加要与构建一起部署的文件和/或目录。
假设您正在使用MSTest,另外您在将使用依赖项的测试方法上放置一个[Microsoft.VisualStudio.TestTools.UnitTesting.DeploymentItem(path)]
属性,每个文件一个。
E.g:
[TestMethod]
[DeploymentItem("TestData/file1.xml")]
[DeploymentItem("TestData/file2.xml")]
public void IntegrationTestMethod()
{
//...
}