2012-01-31 4 views
1

테스트 프로젝트 (TestProjectA : NUnit을 포함한 시스템 테스트 포함)가 포함 된 테스트 솔루션 (TestSolutionA)이 있고 테스트 프로젝트가 해당 프로젝트의 클래스 중 일부를 읽어야하기 때문에 다른 기존 프로젝트 (ProjectB)에 대한 참조가 있습니다. EmailHelper로. TFS에서TeamCity를 구성하여 프로젝트를 내보내는 대신 즉시 구축하는 방법은 무엇입니까?

폴더 구조 :

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

참조 폴더 등 TestProjectA 의해 사용되는 등 NUnit.dll 같은 어셈블리를 포함한다.

이제 TeamCity가 TestSolutionA를 빌드하고 TestProjectA의 테스트를 실행하도록 구성했습니다. 즉, TestSolutionA가 빌드되면이 솔루션에서 참조 된 모든 파일과 폴더가 "체크 아웃 디렉토리"로 체크 아웃 된 다음 솔루션이 빌드됩니다.

문제는 ProjectB의 모든 파일과 폴더를 TeamCity 서버로 체크 아웃/체크 아웃하고 다시 빌드해야하기 때문에이 테스트 솔루션이 느리게 생성된다는 것입니다. ProjectB의 DLL 만 필요합니다. 그 안에있는 모든 파일/클래스.

더 많은 외부 프로젝트가 관련 될 때 문제가 더 많이 나타납니다.

테스트 프로젝트가 외부 프로젝트를 참조해야하는 시나리오에서 빌드 속도를 높이는 더 좋은 해결책이 있습니까? 예 : 프로젝트를 체크 아웃하는 것보다는 TeamCity Server로 내보내는 것만 큼 신속하게 어셈블리를 구축 할 수 있습니다.

확실하지 않습니다.

희망 사항은 분명합니다.

감사합니다,

답변

0

당신이해야 할 것은 DLL을 구축하고 유물로 게시 ProjectB에 대한 별도의 인 TeamCity 빌드 구성을 만드는 것입니다. 그런 다음 ProjectB DLL에 아티팩트 종속성을 갖도록 TestSolution 빌드 구성을 구성 할 수 있습니다. 이렇게하면 TestSolution 빌드 구성이 ProjectB에 대한 소스 코드를 전혀 가져올 필요가 없습니다.

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

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

+0

감사하지만 어떻게 .csproj 파일을 작성하는 :

인 TeamCity 문서의 일부 유용한 링크는 무엇입니까? TeamCity는 UI에 의해서만 판단 할 수있는 .sln 파일을 작성할 수 있습니다. 솔루션없이 프로젝트를 빌드하는 방법을 모르겠습니다. –

+0

ProjectB를위한 새로운 솔루션을 만들 수 있습니까? –

+0

아쉽게도 "Visual Studio (sln)"러너 유형을 .csproj 파일로 빌드 할 수 있으므로 빌드를위한 새 단계를 작성 했으므로 이제는 DLL이 빌드됩니다. 남아있는 유일한 부분은 TestSolutionA의 bin 폴더로 해당 dll을 이동하는 것입니다. 방법을 모르겠다. –

관련 문제