我有一个测试解决方案(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。
不确定是否可能。
希望问题很明确。
谢谢,
答案 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