Mas*_*low 4 .net integration-testing automated-tests unit-testing
我听说单元测试的一个原因是你可以在一分钟左右的时间内运行2000多个测试..因为唯一的限制是CPU速度和内存.但是,我喜欢在我的测试项目中包含外部依赖性断言/测试(例如:应用程序登录的用户帐户是否对相应的表具有插入/更新/删除权限,以便考虑是否迁移了数据库?)
有没有一个框架或支持的方式来利用MS测试,你可以选择只运行单元测试或只是集成测试,或者只需点击一下按钮?
是.:)
在VS2008中,当您创建测试项目时,Visual Studio还将生成测试元数据文件或vsmdi文件.解决方案可能只有一个元数据文件.此文件是所有测试项目中解决方案中生成的所有测试的清单.打开元数据文件,打开测试列表编辑器 - 用于编辑和执行文件的Gui.
从测试列表编辑器中,您可以创建测试列表[例如UnitTestList,IntegrationTestList],并将单个测试分配给特定的测试列表.默认情况下,"测试列表编辑器"列出"所有已加载测试"列表中的所有测试,以及"不在列表中测试"列表以帮助分配测试.使用这些来查找或分配测试组到列表.请记住,测试可能只属于一个列表.
有两种方法可以调用测试列表
开发人员在日常工作流程中有一个选择,另一个选项适用于自动构建流程.
我在上一个项目中设置了类似的东西.
此功能非常有价值*.
理想情况下,每当我们修改代码库时,我们都希望运行所有可能的测试.这为我们提供了对我们所做的更改的最佳回应.
然而,在实践中,在测试套件中运行每个测试通常意味着将构建时间的执行时间增加几分钟或几小时[取决于代码库和构建环境的大小] - 这对于开发人员和持续集成[CI]环境来说是非常昂贵的,这两者都需要快速周转以提供相关的响应.
指定显式测试列表的功能允许开发人员,CI环境和最终构建环境选择性地定位功能位,而不会牺牲质量控制或影响整体生产力.
例如,我正在开发分布式应用程序.我们编写了自己的Windows服务来处理传入请求,并利用亚马逊的Web服务进行存储.我们不希望每次构建都运行我们的亚马逊测试套件,因为
但是,我们希望保留这些测试,因为我们需要一个套件来验证行为.如果作为开发人员我对与Amazon的集成有疑问,我可以根据需要从我的开发环境中执行这些测试.在推出QA的最终版本时,Cruise Control还可以执行这些测试,以确保其他功能区域的某些人不会无意中破坏Amazon集成.
我们将这些亚马逊测试放入集成测试列表中,当调用Cruise Control来提升构建时,该列表可供每个开发人员使用并在构建机器上执行.我们维护了另一个单元测试列表,该列表也可供每个开发人员使用并在每个构建上执行.由于所有这些都是In-Memory [和写得很好:]并且只要在构建项目时执行,它们不会影响单个构建操作并及时提供Cruise Control的出色反馈.
*=有价值==重要."价值"是当天的话语:)