我们正在使用TFS Build并且正在通过远程计算机上的测试代理上的测试控制器运行TFS构建过程。我们通过testsettings文件来完成此操作,我们在其中指定测试控制器。此测试设置文件在默认TFS 2012构建过程模板中指定为参数。
一切正常。但是,我们的构建大约需要一个小时。如果测试因环境问题而失败(所以如果它只在测试代理上而不是在我们的Dev机器上失败),我希望能够重新运行测试和诊断发生的环境问题。但是,我无法弄清楚如何在不重新运行整个构建的情况下做到这一点。一旦环境问题得到解决,我希望能够再次重新运行测试以确保一切正常。我想在不重新运行整个构建的情况下完成所有这些操作。理想情况下,当我重新运行我的测试时,它们应该尽可能类似于TFS Build运行测试时的配置。
有办法做到这一点吗?使用MSTest命令行选项重新运行测试?如果是这样,我怎么知道传递给它的参数?理想情况下,我希望TFS传递给运行测试的QTAgent进程的相同参数?
答案 0 :(得分:1)
根据特定的顺序工作流创建特定构建,您可以从designer WWF
中删除所有不需要的活动。
我建议这些步骤:1。选择链接'创建构建定义'2.通过在源代码管理上复制粘贴创建流程模板,3。在设计器上打开复制的工作流程4.删除所有不需要的活动。 5.通过将此工作流程与构建定义(选择流程选项卡)相关联来完成
答案 1 :(得分:0)
阻止整个构建运行的最简单方法是将“ Clean Workspace ”设置为 None 。
这意味着如果您想重新运行测试,您可以手动排队现有的构建定义,更改为 Parameters 选项卡并将 Clean Workspace 设置为无,然后单击“队列”按钮。
在这种情况下,现有构建输出以及自最近构建以来未发生更改的源代码文件(通过执行 tf get 而不使用) / all 切换。)
这可能不完全是您想要的,因为如果自最近一次构建以来有一些签到,则将获取和构建更改的源文件。
但是,如果使用完全相同的构建输出重新运行测试并不重要,那么每次它对您来说都是一个很好的解决方案,因为它通常会显着缩短构建时间。
答案 2 :(得分:0)
您可能会这样做的一种方法是:
答案 3 :(得分:0)
据说这应该有效:vstest to tfs logger。我可以验证测试是否已运行并发布到我们的tfs,但是我无法仅使用生成的链接(使用mtm作为协议的链接)在tfs构建页面上看到测试结果。