【问题标题】:How can I run my testing application immediately after a build in TFS?如何在 TFS 中构建后立即运行我的测试应用程序?
【发布时间】:2015-01-16 19:33:02
【问题描述】:

我有一个使用标准 TFS 构建定义模板的解决方案。构建解决方案时会运行单元测试,但不会使构建失败。

我还有一个单独的测试应用程序,它运行一套自动化测试。这些测试需要很长时间才能作为主构建的一部分运行(因为我们需要访问构建的应用程序才能进行手动测试),但是我想在构建完成后自动启动这个测试应用程序,我想要它针对构建的应用程序运行。我不知道这是否重要,但测试应用程序也是解决方案的一部分,并引用了一些应用程序 DLL。

我完全不知道如何最好地实现这一目标。我需要创建一个新的构建过程模板吗?我真的想在单独的版本中拥有它吗?

【问题讨论】:

    标签: tfs build-process tfsbuild


    【解决方案1】:

    我不建议将此作为构建的一部分,而应作为发布管道的一部分。您的自动化集成测试应在配置为收集被测数据而不是编译代码的环境中运行。

    Visual Studio 2013 的发布管理提供了将构建输出推送到服务器,然后针对它执行任何您想要的操作的能力。

    http://nakedalm.com/execute-tests-release-management-visual-studio-2013/

    我在上面的示例中配置了 CodedIU 测试,但实际上可以使用任何测试设置。我还配置了一个实验室(可选)以在测试执行时评估环境。

    【讨论】:

    • 谢谢,听起来很合理,但是...你能解释一下为什么 Release Manager 比使用简单的 TFS 连接一些东西更合适吗?我目前没有使用 Release Manager,也没有任何经验,所以我怀疑我能否证明学习曲线的合理性——或者引入另一个需要维护的移动部件。这会比在 TFS 中创建第二个“构建”并从第一个构建触发它更好吗?
    • 发布管理是普通的 TFS,因为它是 2013 产品的一部分。您正在描述尝试使用适合运行单元测试(TF Build)的编译工具来尝试进行部署(无论多么容易)并运行集成测试。作为 TF Build 的一部分运行的唯一测试应该是不需要应用程序实例的测试。
    【解决方案2】:

    如果您使用的是 2013 构建模板 (TfvcTemplate.12.xaml),则可以指定要运行的测试后 PowerShell 脚本。然后,您只需编写一个运行您的自定义测试应用程序并从构建中调用它的 powershell 脚本。

    【讨论】:

    • 好的,谢谢 - 听起来很有希望...但是自定义脚本/EXE 是否需要在构建被认为“完成”之前运行完成?那会是个问题……
    • 这取决于你。您可以编写等待或不等待的电源外壳。
    【解决方案3】:

    还有第三个选项,介于两者之间。使用 Lab 模板运行您的测试,请参阅 Automated build-deploy-test workflows。您最终拥有生成打包工件的“正常”构建,然后使用 LabDefaultTemplate.xaml 的另一个构建从那里挑选并运行您的 UI 或集成测试。

    恕我直言,这三个建议都很好,各有利弊。

    【讨论】:

      猜你喜欢
      • 2013-09-21
      • 2011-12-07
      • 2015-03-02
      • 1970-01-01
      • 1970-01-01
      • 2018-03-31
      • 2013-11-24
      • 1970-01-01
      • 2023-03-18
      相关资源
      最近更新 更多