技术开发 频道

ASP.NET MVC架构下的测试驱动开发

七、 与测试窗口有关的问题

   我承认,我撰写本文的一个主要目的是我本人也为各种类型的测试窗口所疑惑不解。因此,我想干脆把它们整理一下。归纳来看,Visual Studio 2008共提供了三个与单元测试相关的窗口。

   第一个是测试结果窗口(见图8)。当你运行完你的测试时将显示这个窗口。你还可以通过选择菜单选项“测试—Windows—测试结果”来显示这个窗口。该测试窗口将显示运行过的每一个测试并且显示该测试是失败还是顺利通过测试



                                 图8—测试结果窗口

   如果你点击标记有“Test run completed”(即“测试运行成功”)或标记有“Test run failed”(即“测试运行失败”)的链接,那么,呈现在你面前的将是一个关于该测试运行情况的更详细信息的页面。

   第二个窗口是测试视图(TestView)窗口(见图9)。你可以使用菜单“测试—窗口—测试视图”来打开该测试视图窗口。该测试视图窗口能够列举出你的所有测试。你可以选择单个的测试并运行该测试。你还可以使用测试视图中特定的测试属性来过滤测试(例如,仅仅显示Stephen编写的测试)。



      图9—测试视图窗口

   第三个与测试相关的窗口是测试列表编辑器窗口(见图10)。你可以通过使用菜单“测试—窗口—测试列表编辑器”来打开这个窗口。这个窗口能够帮助你把你的所有测试组织成不同的列表。你可以创建新的测试列表,并且把相同中的测试添加到多个列表中。当你需要管理上百个测试时,创建多个测试列表将是非常有用的。



         图10—测试列表编辑器窗口

八、 管理测试运行

   当你执行你的单元测试超过25次以上时,你得到如图11所示的对话框.直到我观察到这个警告时,我才认识到:原来在你每次运行一个测试(每次你运行你的单元测试)时,Visual Studio都会为方案中所有的程序集创建一个单独的副本。

 

      图11—与测试运行有关的一条神秘消息

   如果你使用Windows资源管理器观察一下磁盘上你的应用程序方案文件夹,那么,你会注意到Visual Studio 2008为你自动地创建的一个名字为TestResults的文件夹。这个文件夹中针对每一个测试运行各包含相应的一个XML文件和一个子文件夹。

   请注意,你可以通过禁用测试发布来避免Visual Studio 2008针对每一个测试运行创建你的程序集的副本。为此,你可以修改你的测试运行配置文件。这仅需要选择菜单“测试—编辑测试—运行配置”即可。然后,选择“Deployment”选项卡并且在其中取消选择“Enable deployment”复选框。



                              图12—禁用测试发布功能

   有时,当你打开某个测试,然后打开“编辑测试运行配置”(Test—Edit Test Run Configurations)菜单项时,你会注意到出现到一条消息“不存在可用的测试运行配置”(No Test Run Configurations Available)。这种情况下,你需要在解决方案资源管理器窗口中右击你的方案,然后选择“添加—新项”来添加一个新的测试运行配置。当你添加一个新的测试运行配置文件之后,你即可以打开图12中所示的对话框。

   【注意】如果你禁用测试发布功能,那么,你可能无法再利用系统提供的代码覆盖(coverage)特征。当然,如果你不使用这个特征的话,则不用担心这件事情。

九、 从命令行运行测试

   有些情况下,你可能想从命令行上运行你的单元测试。例如,你可能不愿意使用像Visual Studio这样的集成开发环境而仅想使用记事本来书写你所有的代码;或者更可能的是,你想作为一个定制代码登记策略的一部分来自动地运行你的测试。

   只要打开Visual Studio 2008命令提示符(程序→Microsoft Visual Studio 2008→Visual Studio Tools→Visual Studio 2008 Command Prompt)即可以实现从命令行运行你的测试。在你打开该命令提示符后,导航到你的测试工程生成的程序集。例如:
 

Documents\Visual Studio 2008\ Projects \MyMvcApp\MyMvcAppTests\Bin\ Debug

 
   然后,执行下列命令运行你的测试:
 

mstest /testcontainer:MyMvcAppTests.dll


   发出上面这个命令将启动运行你的所有测试(见图13)。
 



            图13—从命令行运行你的单元测试

十、 总结

   最后再强调一下,本文的目的是为了帮助你更好地理解在进行测试驱动开发时如何使用VisualStudio 2008编写单元测试。Visual Studio的设计支持许多不同的类型测试并且并且针对许多不同的测试用户。单单就它所提供的测试选项(以及测试相关的窗口)来说,为数就相当惊人。总之,我希望你也同意我的观点:Visual Studio 2008的确是一个实现测试驱动开发的相当有效的开发环境。

   最后,如果你忽略本本中所有其他内容的话,我也建议你至少记住使用键盘组合键Ctrl-R,A来运行你的方案中的所有测试。
 

0
相关文章