从测试视图运行时测试成功,但从测试列表编辑器或命令行运行时测试失败



在一个项目中,我有一个测试套件,由单元测试和集成测试组成,该项目使用.NET 4.0上的C#和Visual Studio 2010。测试套件使用MSTest。当我在解决方案中运行所有测试时(通过点击测试工具栏上的按钮或使用Ctrl-R快捷键和弦),所有测试、集成和单元都成功通过。

当我尝试使用mstest从命令行运行相同的测试(明确地使用存在的唯一.testsettings文件),或者尝试从测试列表编辑器或使用.vsmdi文件运行它们时,集成测试失败。

集成测试测试UI,因此对部署项等具有依赖性,而单元测试则没有。然而,我似乎无法确定这两种运行测试的方法之间到底有什么不同。

当我从测试运行中检查适当的Out目录时,并不是所有的文件都存在。

是什么原因导致Visual Studio中在一种情况下正确部署的某些文件在另一种情况中没有正确部署?

在我写了上面的评论后不久,静态内容就开始被复制了。我遇到的另一个主要问题是,集成测试项目引用的库是被测试系统的依赖项(副本本地设置为true),以确保DLL在需要时出现。出于某种原因,当测试通过测试列表或mstest运行时,这些人顽固地拒绝复制。

我最终所做的是为我需要的DLL包含[DeploymentItem]属性。无论测试如何运行,这都能使事情正常运行。我仍然不清楚的是,可能已经回答了底层解决方案,或者提供了更好的解决方案,即Test View/mtest与常规测试运行程序的区别(假设正确的.settings文件已传递给mstest。),但我将保留这个问题,以防有人能够解决不同测试执行路径不同的根本原因。

最新更新