MSTest VS2010 - DeploymentItem将文件复制到不同计算机上的不同位置

时间:2010-06-16 16:10:21

标签: c# unit-testing testing mstest deploymentitem

我找到了DeploymentItem

[TestClass(), DeploymentItem(@"TestData\")]

在构建测试并在不同的计算机上运行时,不会将我的测试数据文件复制到同一位置。

测试数据文件被复制到我机器上测试项目的“bin \ debug”目录中,但在我朋友的机器上,它们被复制到“TestResults \ name_machine YY-MM-DD HH_MM_SS \输出”。

我的机器上的bin \ debug目录可以使用以下代码获取:

string appDirectory = 
Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);

并且相同的代码将在我的朋友PC上返回TestResults\*name_machine YY-MM-DD HH_MM_SS*\Out

然而,这不是真正的问题。问题是我制作的测试数据文件有一个文件夹结构,这个文件夹结构只在我的机器上复制到bin \ debug时保留,而在我的朋友机器上只有文件被添加到TestResults\*name_machine YY-MM-DD HH_MM_SS*\Out目录。这意味着测试将在我的机器上传递并失败!

有没有办法确保DeploymentItem始终复制到bin \ debug文件夹?或者确保在DeploymentItem将文件复制到TestResults\*name_machine YY-MM-DD HH_MM_SS*\Out文件夹时保留文件夹结构的方法?

1 个答案:

答案 0 :(得分:2)

在玩了一段时间后,看起来处理它的最佳方法是确保为每个子目录添加一个新的DeploymentItem,确保指定“outputDirectory”,如下所示:

[TestClass(), DeploymentItem("TestData\\", "TestData"),
DeploymentItem(@"TestData\\SubDir\\", "TestData\\SubDir")]

这允许测试在您的计算机上运行 - 希望这有助于某人!