Вопрос немного неточным - Я предполагаю, что ваш вопрос относится к модульного тестирования кода, а не приемочные тесты, тесты производительности и т.д.
Первое, что нужно учитывать, что существует тесная связь между тестом кода и тестируемого кода. Вам нужно управлять этой зависимостью; как вы его управляете, во многом зависит от вашей стратегии развития. Если вы используете ветви для разделения функций или выпусков, я бы поместил тестовый код для этой ветви в одну ветку - вы не можете ожидать, что она будет работать с кодом из другого филиала. Добавление отдельной ветви для тестового кода делает вещи более сложными, не добавляя при этом никакой пользы.
Во-вторых - надеюсь, очевидно - вам нужно управлять зависимостями. Ваш тестовый код зависит от тестируемого кода; тестируемый код не должен зависеть от тестового кода. Использование таких инструментов, как JDepend или NDepend, позволяет отслеживать эти зависимости. Обычно рекомендуется явно управлять зависимостями из тестового кода - если вы обнаружите, что все ваши тесты зависят от одного класса в тесте под кодом, эта зависимость может нарушить каждый тест, если что-то пойдет не так.
Теперь, чтобы ответить на ваши конкретные вопросы, я буду считать, что у вас есть отделение для (основной) функции в SVN, и что вы создали стандартную структуру проекта, вдоль линий
\src
\app
\test
Код приложения находится в папке «приложение»; тестовый код в каталоге «test».
В этом случае, ваш SVN может быть:
\trunk
\app
\com.me.app.views
\com.me.app.models
\com.me.app.controllers
\test
\com.me.app.tests.views
\com.me.app.tests.models
\com.me.app.tests.controllers
\branches
\feature1
\app
\com.me.app.views
\com.me.app.models
\com.me.app.controllers
\test
\com.me.app.tests.views
\com.me.app.tests.models
\com.me.app.tests.controllers
\feature2
\app
\com.me.app.views
\com.me.app.models
\com.me.app.controllers
\test
\com.me.app.tests.views
\com.me.app.tests.models
\com.me.app.tests.controllers
зависит от того, что вы делаете. например, у нас есть один репозиторий, но два веб-сайта. Один из них - это тестовый сайт, и мы можем скопировать с него последний код из репозитория и протестировать его, прежде чем мы начнем его производство. но если вы не занимаетесь веб-программированием, вам, возможно, придется сделать что-то другое. –