2

我的 VS 2010 解决方案中有两个单元测试项目。每个项目都有一个 Data 目录,其中包含单元测试所需的输入数据。

我注释了需要数据的测试类

[DeploymentItem("Data")]

当我单独运行测试时,运行良好。但是,当我在解决方案中运行(或调试)所有测试时,我发现两个 Data 目录中只有一个被复制到TestResults\MyTestDir-YYYY-MM-DD HH_mm_SS\Out,导致依赖于另一个数据目录的单元测试失败。

有趣的是,如果我随后使用“测试结果”窗口重新运行已检查的(如失败的)测试,测试仍然失败(它们无法识别正确的数据目录的文件丢失)。如果我然后直接导航到失败的测试并选择在当前上下文中运行测试,则测试运行将获得正确的数据目录并且测试成功。

我的问题:如何将DeploymentItem两个单独的测试项目中的 s 全部复制到Out执行测试的目录中?

作为参考,我已经回顾了这些问题而没有注意到解决方案

DeploymentItem 属性的问题

MSTest 部署项是否仅在项目测试设置文件中存在时才有效?

4

1 回答 1

1

我发现给每个“数据”目录一个唯一的名称(例如“TestProjectAData”)解决了这个问题。当不同路径中的多个目录都具有到不同测试项目的相同相对路径时(即,如果每个测试项目都有一个名为“Data”的子目录),似乎存在某种错误。

于 2012-03-14T20:12:43.190 回答