【问题标题】:Alter TFS Build in order to deploy before executing tests更改 TFS 构建以便在执行测试之前进行部署
【发布时间】:2013-08-09 16:14:50
【问题描述】:

当我使用 Selenium/MSTest 进行 UI 测试时,我遇到了一个问题:我需要在 TFS 期间执行自动化测试之前将一个 ASP.NET 站点部署到一个临时服务器构建(TFS 2012)。

虽然我认为我可以在 TFS 构建过程模板 (DefaultTemplate.xaml) 中进行此配置,但我不知道如何更改执行顺序以执行 Build->Deploy->Test 流动。

请注意,在使用 TFS 实验室环境时,我发现了一些有助于实现此目标的方法,但这不是我的情况。

【问题讨论】:

    标签: testing deployment tfs msbuild tfsbuild


    【解决方案1】:

    默认模板单元测试不同于 UI 测试。默认模板旨在运行构建 -> 单元测试 -> 部署。

    您现在处于构建 -> 单元测试 -> 部署 -> UI 测试。

    对于 UI 测试,您需要单独的测试代理并在交互过程中设置构建代理。

    这些链接可能会有所帮助

    【讨论】:

    • 感谢您的信息,但我觉得您根本没有阅读我的问题。我知道现在我处于另一个流程中,这很清楚,但我在问如何实现这样的流程。另外,我说过我知道 Lab Manager 方法……但我只想运行 UI 测试,你知道的。无论如何,谢谢你的努力。
    • 另外,你会详细说明“你需要一个单独的测试代理”吗?关于“交互过程”,我不这么认为,因为我使用的是 PhantomJS。测试执行没有问题。这是关于 when 被执行。谢谢!
    • 抱歉误解了您的问题。我以为您正在尝试在构建后运行编码的 UI 测试。有关此链接stackoverflow.com/questions/7265192/… 中的测试代理的更多详细信息。我从未尝试过 PhantomJS。我猜在您的情况下,要在构建后运行单元测试,您需要自定义构建模板。
    • 好吧,我使用其他方法得到了解决方案。我会在几个小时后发布!
    【解决方案2】:

    我终于解决了链接构建的问题。

    例如,当我排队生产构建时,这是顺序:

    1. 无需 UI 测试即可构建、部署到暂存
    2. 仅构建、不部署、暂存 UI 测试
    3. 无需 UI 测试即可构建、部署到生产环境
    4. 仅构建、不部署、生产 UI 测试

    我从这篇博文中得到了解决方案:

    Post 的作者在 GitHub Gist 中发布了修改后的 DefaultTemplate.xaml(构建定义):

    整个博主的功劳!

    【讨论】:

      【解决方案3】:

      一个简单的解决方案是在构建定义中指定一个中间 msbuild 项目文件,然后从那里调用实际的解决方案文件。

      然后,您可以在构建前或构建后执行任何所需的操作,以确保在 TFS 执行测试之前环境已启动并运行。我们会在 TFS 运行我们的集成测试之前编译和部署数据库。

      这是一种避免操作构建模板的解决方案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-08-07
        • 1970-01-01
        • 2013-12-29
        • 2017-02-13
        • 1970-01-01
        • 2012-02-16
        • 1970-01-01
        • 2015-01-02
        相关资源
        最近更新 更多