http://tfsbranchingguideiii.codeplex.com/
Кроме того, я не знаю, что вы называете «тестовыми проектами», но если они меняются при изменении вашего основного кода, то они должны быть разветвлены с вашим основным кодом.
Вот краткое описание того, как я недавно создал маленькое приложение. Я еще не переместил более крупные более крупные приложения, поэтому еще не занимался такими вещами, как библиотеки общего кода.
$/TeamProject
/Development (folder)
/Development (branch)
/Lib
/Src
etc.
/Main (branch)
/Lib [third party binaries and other artifacts]
/Src
/Solution1
Solution1.sln
WebApplication
WebApplication.csproj
etc.
WcfServices
WcfServices.csproj
etc.
DAL
DAL.csproj
UnitTests
UnitTests.csproj
/Solution2 (same pattern as Solution1)
/Release (folder)
/Release (branch)
/Lib
/Src
etc.
- У меня есть сборка CI, настроенная для ветви разработки, которая строит конфигурацию "Dev". Мы развернем его в нашей среде интеграции.
- У меня настроена ночная сборка для нашей ветки Main, которая создает конфигурацию «Test». Когда QA хочет протестировать новую сборку, они внедряют последние из них в среду QA.
- У меня есть ручная сборка, настроенная для ветки Release, сборка конфигурации "Prod". Когда мы будем готовы перейти к производству, QA сначала тестирует процесс развертывания в их среде (будет промежуточной средой, как только мы его получим), а затем Operations развертывает его в производственной среде.