Посмотрите на дизайн вашего проекта. Если это где-то близко к макету MVC или одной из его альтернатив, то у вас должны быть разные уровни разных сборок. Сделайте один тестовый узел для каждого уровня вашего дизайна.
Наш тестовый проект обычно выполняется вместо проекта, который создает EXE. Наш EXE-проект представляет собой тонкую оболочку, которая передает событие и информацию сборке, заполненной классами контроллеров, в которой содержится код, который большинство людей помещают в EXE-проект. Это позволяет тестовому проекту претендовать на то, что он является EXE-файлом 90% обычного процесса тестирования.
Мы все еще разрабатываем наилучшую схему для реальных тестовых случаев. Прямо сейчас у нас есть несколько основных уровней нашей Utility Framework, Applicaiton Objects, UI Framework, Команд, UI Controllers и EXE. У нас есть одна сборка для каждого уровня, кроме EXE (который тестируется вручную). Когда мы редактируем сборку, мы загружаем тестовую сборку для этого уровня. Когда нам нужно сделать что-то, что касается каждого уровня, мы должны загрузить все тестовые сборки.
В процессе сборки одной кнопкой мы запускаем тестовый проект exe. (Для этого у нас есть отдельная утилита).