2013-03-03 56 views
8

在短时间内,我将开始基于Windows Azure的项目。我想知道测试Windows Azure项目有什么经验(连续集成(使用TFS构建服务器))?成为(最终使用TDD)测试Windows Azure的最佳实践(单元)

有些事情我想知道:

  • 你用嘲讽(在你自己写的包装类)?
  • 您使用存储模拟器吗?
  • 您是否将服务部署到Azure并从构建服务器运行测试到云? (成本如何)?

Thnaks提前!

回答

4

同为编写单元测试应用程序的Windows Azure之外好的做法适用。如果您对实际测试的内容具有外部依赖性,则应将该依赖性模拟并注入以进行粒度单元测试。

例如,当我使用Windows Azure存储队列时,我将有一个接口用于与队列本身交互,因此在使用队列服务的代码中,我可以使用该接口模拟子系统并使用依赖关系注入以注入模拟。这消除了在单元测试期间实际处理仿真器的必要性。大多数情况下,与队列一起工作的代码的实际具体实现不过是一个非常薄的包装器。

我个人不拍了100%的测试覆盖率,所以我可能没有利用的具体落实包装的直接单元测试。在很多情况下,我尝试进行集成测试,这些测试将运行这些包装并运行系统的多个方面。在某些情况下,我可以在模拟器中运行集成测试(例如,针对存储操作),但在某些情况下,只需运行访问Windows Azure环境(在使用ACS或服务总线的情况下)即可。

理想情况下,你想有一组可以运行旋转了一个最小的一组测试服务器在Azure中,部署解决方案和运动不能的处所进行集成测试脚本。然后获取结果,并让脚本关闭所有内容(或者如果需要,可以选择让它运行)。然后运行集成测试套件,这些套件通常足以检测问题,但您无需每次检查内容时都运行它们,除非您满意地始终运行测试环境。如果您在Azure中运行的半永久性测试环境的成本没有问题,那么只需确保将脚本安装到更新部署中,而不是删除并重新部署以节省一点成本(节省的时间可能与多久部署发生)。

我相信这个问题是一个很主观的,你很有可能会得到一些不同的意见。

+0

我想的若干意见,这样我就可以看到哪些不同的选择有和“最佳实践”有(可以每答案有所不同) – mrtentje 2013-03-04 21:19:51