5

我发现了 DeploymentItem

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

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

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

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

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

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

然而,这并不是真正的问题。问题是我制作的测试数据文件有一个文件夹结构,这个文件夹结构只有在复制到 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夹时保留文件夹结构的方法?

4

1 回答 1

2

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

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

这允许测试在您的机器上运行 - 希望这对某人有所帮助!

于 2010-06-22T12:40:12.480 回答