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

时间:2013-12-30 22:27:03

标签: c# visual-studio-2010 unit-testing integration-testing

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

当我尝试使用mstest从命令行运行相同的测试时(显式地使用仅存在的.testsettings文件)或尝试从测试列表编辑器运行它们或使用{{ 1}}文件集成测试失败。

集成测试测试UI,因此依赖于部署项等,而单元测试却没有。但是,我似乎无法确定这两种运行测试方法之间的实际差异。

当我从测试运行中检查相应的.vsmdi目录时,并非所有文件都存在。

什么会导致某些情况下从Visual Studio正确部署的某些文件无法在另一种情况下正确部署?

1 个答案:

答案 0 :(得分:2)

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

我最终解决的问题是包含我需要的DLL的[DeploymentItem]属性。无论测试如何运行,这都能解决问题。我仍然不清楚,可能已经回答了底层解决方案,或提供了更好的解决方案,是Test View / mstest与常规测试运行器的不同之处(假设正确的.settings文件传递给{{1 }})。我将这些注释/解决方法放在一个答案中,但我会保留问题,以防任何人可以解决不同测试执行路径如何不同的根本原因。