在本地测试TFS构建工作流

时间:2013-11-18 22:21:42

标签: tfs tfs2012 tfsbuild

我在TFS 2012系统上维护构建过程。

到目前为止,我一直在本地更改生成自定义活动DLL的解决方案。这些DLL被检入TFS,并由构建控制器和代理用于我们的自定义构建模板中的自定义活动。

对于我的所有代码和工作流活动,我有一个单元测试库,我可以在本地运行以输入一些基本测试值。虽然这让我对自定义任务的运行方式有了一个很好的了解,但这并不是最佳选择。

我希望能够执行的是运行整个构建定义。有没有办法在本地测试整个构建过程,以便我可以确保在签入和启动构建之前我对工作流的更改是可接受的?现在我的构建需要30到40分钟才能完成,我希望能够在本地启动,监控,调试和停止构建,而不占用我们的代理。

修改 我解决此问题的另一种方法是提出一些方法来执行本地构建模板的工作流。有没有人能够做到这一点?

3 个答案:

答案 0 :(得分:0)

查看Ranger Build Customization Guidance。有一个HOL可以做很多这样的事情。它看起来不像v2所以请看一下v1.2。

http://vsarbuildguide.codeplex.com/releases/view/87995

答案 1 :(得分:0)

如果我正确理解了这个问题,可以采用以下方法:

  1. 在本地安装构建代理并使用TFS构建控制器注册它。
  2. 提供new agent a custom tag,以便不会从队列中分配其他构建
  3. 搁置您的变更集
  4. 在VS中,右键单击所需的构建定义,然后选择队列新构建。 “队列构建”窗口将打开
  5. 在常规标签下,“您想要构建什么”,选择您的搁置集。
  6. 在参数标签下 - >高级 - >代理商设置,输入代理商的代码。
  7. 点击队列。

答案 2 :(得分:0)

我使用@malexander推荐的修改版本完成此操作。

  1. 在TFS中创建代码分支,在那里提交更改,尤其是对自定义活动DLL(已编译的二进制文件,而不仅仅是源代码)的更改。
  2. 在本地安装TFS Build Controller和Build Agent,向TFS服务器注册控制器。
  3. 配置新的本地控制器以使用存储在新TFS代码分支中的已修改的自定义活动DLL。 Team Explorer > Builds > Actions > Manage Build Controllers > (select your new local controller) > Properties > Version control path to custom assemblies 4。
  4. 从现有TFS构建定义中对新构建进行排队:更改其控制器以使用新的本地控制器。
  5. 新版本将使用您修改的自定义活动DLL在您的本地控制器/代理上执行,而不会干扰/重新启动您的生产代理。
  6. 另外:由于您已经在自己的代码分支中,因此您可以提交自定义活动DLL的调试版本,而不会影响您的生产代理。