我的VS 2010解决方案中有两个单元测试项目。每个项目都有一个Data目录,其中包含单元测试所需的输入数据。
我用
注释了需要数据的测试类[DeploymentItem("Data")]
当我单独运行测试时,运行正常。但是,当我在解决方案中运行(或调试)所有测试时,我发现只有两个Data目录中的一个被复制到TestResults\MyTestDir-YYYY-MM-DD HH_mm_SS\Out
,导致依赖于其他数据目录的单元测试失败。
有趣的是,如果我然后使用“测试结果”窗口重新运行已检查(如在失败中)测试,则测试仍然失败(他们无法识别缺少正确的数据目录文件)。如果我然后直接导航到失败的测试并选择在当前上下文中运行测试,则测试运行将获得正确的数据目录并且测试成功。
我的问题:如何将两个独立测试项目中的DeploymentItem
全部复制到执行测试的Out
目录中?
作为参考,我在没有注明解决方案的情况下审阅了这些问题
Problems with DeploymentItem attribute
Do MSTest deployment items only work when present in the project test settings file?
答案 0 :(得分:1)
我发现给每个“数据”目录一个唯一的名称(例如“TestProjectAData”)解决了这个问题。当不同路径中的多个目录都具有到不同测试项目的相同路径时(例如,如果每个测试项目都有一个名为“Data”的子目录),似乎存在某种错误。