【问题标题】:How to re-run automated tests triggered by TFS Team Build without re-running the entire build?如何在不重新运行整个构建的情况下重新运行由 TFS Team Build 触发的自动化测试?
【发布时间】:2013-12-03 07:23:19
【问题描述】:

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

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

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

【问题讨论】:

    标签: tfs automated-tests mstest tfsbuild


    【解决方案1】:

    创建特定的构建,基于您从 designer WWF 中删除的所有不需要的活动。

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

    【讨论】:

      【解决方案2】:

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

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

      在这种情况下,现有的构建输出以及自最近一次构建后没有更改的源代码文件(通过执行不带 tf get /all 开关)。

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-05-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-10-08
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多