使用Lab Management运行单元/集成测试

时间:2013-04-17 15:14:19

标签: tfs2010 integration-testing mstest lab-management

我们有一个完整的实验室管理环境,在夜间构建中运行编码的UI测试。我们试图实现的是在所有Coded UI测试之前运行我们的集成测试(常规的TestMethod()与SQL连接),以验证我们的db脚本是否正确执行,并且没有新的更改导致任何问题。

到目前为止,我已经找到了一种通过.testrunco​​nfig远程执行测试的方法。我们使用这种方法的问题是,不可能选择连接到团队项目的测试控制器,所以我猜这只会对在实验室管理之外的物理机器上运行测试有用吗?

一个选项似乎是为每个集成测试创建一个测试用例,并且应该与UI测试一起运行它,但感觉就是为了运行集成测试而需要进行大量维护来管理数百个测试用例。另外,最好将不同类型的测试分开测试运行。

有没有简单的方法可以实现这一点,我完全错过了?或者我是否必须修改实验室构建模板以部署和运行测试?

2 个答案:

答案 0 :(得分:1)

  

我想这对于在实验室管理之外的物理机上运行测试只会有用吗?

如果您通过.testrunconfig远程运行​​测试,则必须将测试代理连接到另一个未连接到团队项目的测试控制器。 不幸的是,据我所知,在实验室管理下运行的环境是不可能的。

这种方法怎么样:

  1. 创建包含所有集成测试的 Ordered Test
  2. 创建一个新的测试用例“集成测试”并通过有序测试自动化它 因此,您无需维护数百个测试用例。 如果要对集成测试进行分组,则还可以创建多个 Ordered Tests 创建包含它们的“主”有序测试。 这样,分析测试结果会更容易,特别是如果你有很多测试。
  3. 集成测试作为现有每晚构建的一部分运行。
  4. 创建 构建定义,它不会启动构建但使用上次成功的每晚构建,并使用<运行 CodedUI 测试em>实验室构建模板。
  5. 通过这种方式,您可以针对不同类型的测试进行不同的测试运行。

    唯一的缺点是你必须“同步”这两个版本...... 您可以稍后安排第二次构建,以确保第一次构建完成。

    这不是很完美,我知道......但这样你就可以轻松实现目标。

答案 1 :(得分:0)

我不确定是否有替代解决方案,但在我正在进行的项目中,我们在Process选项(Process&gt; Basic&gt; AutomatedTest&gt; TestAssembly)下设置了Unit和Integration Test Assemblies < / em>在我们的Nightly Build中。
这是通过改变默认构建过程模板(而不是实验室默认值)来实现的,正如您所建议的那样(我认为这是标准的,但已经有一段时间了。)