如何配置TeamCity来动态构建项目而不是导出它们?

时间:2012-01-31 11:03:43

标签: testing configuration build nunit teamcity

我有一个测试解决方案(TestSolutionA),它包含一个测试项目(TestProjectA:包含使用NUnit的系统测试)并且引用另一个现有项目(ProjectB),因为我的测试项目需要读取该项目的一些类例如EmailHelper。

TFS中的文件夹结构:

*Root
**Tests
***References
***TestSolutionA
****TestProjectA
**ClassLibraries
***ProjectB

References文件夹包含由TestProjectA使用的NUnit.dll等程序集。

现在我已经配置了TeamCity,以便构建TestSolutionA并运行TestProjectA的测试。这意味着在构建TestSolutionA时,此解决方案中引用的所有文件和文件夹都会签出到“签出目录”,然后构建解决方案。

问题是这个测试解决方案构建起来很慢,因为每次必须检出/导出ProjectB的所有文件和文件夹到TeamCity Server并重建它们,而只需要ProjectB的dll并不是全部其中的文件/类。

当涉及更多外部项目时,问题会更多。

在测试项目必须引用外部项目的情况下,是否有更好的解决方案可以加快构建速度?例如即时构建程序集而不是将它们检出/导出到TeamCity Server。

不确定是否可能。

希望问题很明确。

谢谢,

1 个答案:

答案 0 :(得分:0)

您需要做的是为ProjectB创建一个单独的TeamCity构建配置,构建DLL并将其作为工件发布。然后,您可以配置TestSolution构建配置,以使其对ProjectB DLL具有工件依赖性。这样,您的TestSolution构建配置就不必为ProjectB提取任何源代码。

TeamCity文档中的一些有用链接是:

http://confluence.jetbrains.net/display/TCD65/Build+Artifact

http://confluence.jetbrains.net/display/TCD65/Artifact+Dependencies