某些构建触发器构建在TeamCity中运行不同的构建脚本

时间:2014-04-15 03:18:54

标签: continuous-integration teamcity automated-tests

是否有运行某些构建触发器并因此运行不同的构建步骤?或者我是否必须将TeamCity上的不同项目分开来执行此操作?

例如,在每次提交时,我想运行一个较小的测试套件,然后每晚它应该运行一个完整的回归测试套件。我不完全确定如何设置

3 个答案:

答案 0 :(得分:1)

您必须添加两个不同的构建配置,然后根据夜间配置的计划和“较小的测试套件”的VCS触发器指定触发器。
当然,您可以在一个配置中添加构建脚本中的时间检查,并根据条件执行操作,但这不是解决此任务的好方法。

答案 1 :(得分:1)

在这种情况下,您想要做两个不同的构建。这是一个非常常见的模式,我几乎为我参与的每个项目都做过。

我使用的模式是在TeamCity中设置两个不同的版本

首先是持续集成构建,它将构建解决方案并运行由测试上的某种属性或标志过滤的单元测试的子集。对于MsTest和C#,这将是TestCategoryAttribute。这个版本设置为每当有人检查代码时运行,并且设计为快速运行并为您提供快速查看是否有任何明显损坏的方法。

第二个版本是一个每晚构建,它涉及更多,如果需要可以运行几个小时,因为它安排在深夜,当每个人都回家。此构建将构建解决方案,运行所有单元测试,包括未在CI构建中运行的单元测试,并且如果一切正常,则打包解决方案。此构建还可以执行增量修订号等操作。

那么有没有办法使用构建触发器运行不同的构建步骤?不是我发现的。但这不是我所说的普通或最佳实践。为两个不同的目标设置两个不同的构建。在TeamCity中,您可以轻松地在构建定义之间共享诸如VCS根之类的常见内容。

答案 2 :(得分:1)

创建一个构建配置,可以执行包括夜间测试在内的所有操作。在编辑配置下,选择'提取模板'。基于此模板创建新配置并禁用慢速运行测试。每个配置都有自己的触发器,但是您没有使用相同步骤的两个配置的维护开销。您有两个单独的配置,但它们共享构建步骤,唯一的区别是触发器和启用了哪些步骤。