c# - MSTest VS2010 - DeploymentItem 将文件复制到不同机器上的不同位置

标签 c# unit-testing testing mstest deploymentitem

我找到了 DeploymentItem

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

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

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

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

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

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

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

有没有办法确保 DeploymentItem 总是复制到 bin\debug 文件夹?还是一种确保在 DeploymentItem 将文件复制到 TestResults\*name_machine YY-MM-DD HH_MM_SS*\Out 文件夹时保留文件夹结构的方法?

最佳答案

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

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

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

关于c# - MSTest VS2010 - DeploymentItem 将文件复制到不同机器上的不同位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3055126/

相关文章:

java - Selenium 2(WebDriver) 还是 Geb?

使用请求库的 Django Rest Framework 测试功能

c# - Linq 与数组连接

c# - 有没有办法让 XAML/C# StringFormat 显示较大金额的整美元,但较小金额的美分?

c# - MVC - 列表中的 ICollection 在 POST 时不会返回到 Controller

php - 单元测试和对象继承

java - Jersey 2 将依赖项注入(inject)单元测试

c# - 控制台应用程序中常见的 .NET 与常见的 .NET Core 命名空间

iphone - 单元测试找不到核心数据模型文件

unit-testing - 在简单的 CRUD 前端应用程序中进行单元测试的目的是什么?