如何在不重新运行整个构建的情况下重新运行由TFS Team Build触发的自动化测试?

时间:2013-11-19 16:20:50

标签: tfs automated-tests mstest tfs2012 tfsbuild

我们正在使用TFS Build并且正在通过远程计算机上的测试代理上的测试控制器运行TFS构建过程。我们通过testsettings文件来完成此操作,我们在其中指定测试控制器。此测试设置文件在默认TFS 2012构建过程模板中指定为参数。

一切正常。但是,我们的构建大约需要一个小时。如果测试因环境问题而失败(所以如果它只在测试代理上而不是在我们的Dev机器上失败),我希望能够重新运行测试和诊断发生的环境问题。但是,我无法弄清楚如何在不重新运行整个构建的情况下做到这一点。一旦环境问题得到解决,我希望能够再次重新运行测试以确保一切正常。我想在不重新运行整个构建的情况下完成所有这些操作。理想情况下,当我重新运行我的测试时,它们应该尽可能类似于TFS Build运行测试时的配置。

有办法做到这一点吗?使用MSTest命令行选项重新运行测试?如果是这样,我怎么知道传递给它的参数?理想情况下,我希望TFS传递给运行测试的QTAgent进程的相同参数?

4 个答案:

答案 0 :(得分:1)

根据特定的顺序工作流创建特定构建,您可以从designer WWF中删除所有不需要的活动。

我建议这些步骤:1。选择链接'创建构建定义'2.通过在源代码管理上复制粘贴创建流程模板,3。在设计器上打开复制的工作流程4.删除所有不需要的活动。 5.通过将此工作流程与构建定义(选择流程选项卡)相关联来完成

答案 1 :(得分:0)

阻止整个构建运行的最简单方法是将“ Clean Workspace ”设置为 None

这意味着如果您想重新运行测试,您可以手动排队现有的构建定义,更改为 Parameters 选项卡并将 Clean Workspace 设置为,然后单击“队列”按钮。

enter image description here

在这种情况下,现有构建输出以及自最近构建以来未发生更改的源代码文件(通过执行 tf get 而不使用) / all 切换。)

这可能不完全是您想要的,因为如果自最近一次构建以来有一些签到,则将获取和构建更改的源文件。
但是,如果使用完全相同的构建输出重新运行测试并不重要,那么每次它对您来说都是一个很好的解决方案,因为它通常会显着缩短构建时间。

答案 2 :(得分:0)

您可能会这样做的一种方法是:

  1. 打开在Visual Studio中测试失败的构建
  2. 向下滚动到测试运行部分。
  3. 单击失败的测试运行。 “测试结果”窗口应该打开。
  4. 选择要重新运行的失败测试。
  5. 点击“运行已检查的测试”按钮

答案 3 :(得分:0)

据说这应该有效:vstest to tfs logger。我可以验证测试是否已运行并发布到我们的tfs,但是我无法仅使用生成的链接(使用mtm作为协议的链接)在tfs构建页面上看到测试结果。