2012-01-26 77 views
3

使用TeamCity,我们希望首先运行受代码更改影响的测试。TeamCity首先运行受代码更改影响的测试

NCrunch(http://ncrunch.net)和Mighty Moose(http://continuoustests.com/)为本地开发机器提供解决方案。 TeamCity有一些解决方案吗?

上下文:我们正在对我们的代码库进行许多集成测试和程序员测试。在集成服务器上运行所有测试需要长达4小时。它运行在相当强大的硬件上,并且没有太多的改进空间。当一个开发人员承诺和推动时,获得快速反馈会很好。

+1

考虑在其他服务器上设置的TeamCity代理。另一种选择是将集成测试设置为夜间运行而不是每次检入。**单元**测试在相关代码更改时仍会运行。您还需要将构建触发设置为只在相关代码更改时触发。 – TrueWill

+0

已有8个代理服务器...此外,我们的测试中只有5%是单元测试,因为这是一个棕色领域的应用程序,它没有为单元测试提供所需的分离和模块化级别。 –

+0

@ noah1989 - 你可能想看看TypeMock或JustMock。 – TrueWill

回答

3

为了减少整体测试的持续时间,您可能可以将测试分为两个或更多部分,并在TeamCity中为每个部分分别进行构建配置。然后,您可以在所有这些部分上创建一个具有快照依赖关系的构建配置。最后,您可以将VCS触发器添加到此配置中,并选择触发依赖项中的更改。实际运行测试的构建配置可能根本没有触发器。

使用此设置和足够的代理,您将有多个并行运行的测试部分。请注意,快照依赖关系结果将保持一致,因为当集成测试生成配置被触发时,其修订版本是固定的,并且对于所有触发的生成版本都是相同的。根据测试配置的构建配置可能根本没有构建步骤,唯一的任务是提供聚合测试结果和触发。

的TeamCity还支持测试重新排序.NET和Java,你可以阅读文档详细了解此功能:http://confluence.jetbrains.net/display/TCD65/Running+Risk+Group+Tests+First

+0

Thx为您的答案。我们已经做了大部分建议。 (分割测试,不同的构建配置,触发和流水线构建。) – Robert