1

我有一组单元测试,我想在 Team Foundation Build 中运行。这些测试从文件系统中读取一组文件,并检查错误。我无法将测试文件数据移动到我的测试 DLL 中,因为重点是检查安装程序中随附/捆绑的这些文件是否有效。

当我在本地运行测试时,这很好,因为测试的 DLL 依赖于这些文件,因此,Visual Studio 在构建测试 DLL 时将它们复制过来。但是,当在构建服务器上运行时,构建服务器会将测试 DLL 连同它直接或间接引用的程序集(如在其元数据中声明)一起复制到不同的目录中。结果,测试找不到被测文件,因为它们没有被声明为“依赖程序集”(也不能)。

我怎样才能解决这个问题?

4

1 回答 1

3

.testsettings对话框中有一个称为部署的类别。如果启用此功能,您可以添加要随构建一起部署的文件和/或目录。

假设您使用的是 MSTest,此外,您在[Microsoft.VisualStudio.TestTools.UnitTesting.DeploymentItem(path)]将使用依赖项的测试方法上放置了一个属性,每个文件一个。

例如:

[TestMethod]
[DeploymentItem("TestData/file1.xml")]
[DeploymentItem("TestData/file2.xml")]
public void IntegrationTestMethod()
{
    //...
}
于 2012-09-20T17:35:46.987 回答