Я не думаю, что модуль модульных тестов создает новый домен приложений для каждого теста. Поскольку создание домена приложения является относительно дорогой операцией, выполнение этого для каждого теста значительно замедлит выполнение модульных тестов!
Visual Studio 2008 использует отдельный исполняемый файл vstesthost.exe для запуска модульных тестов. VS связывается с vstesthost.exe (как он это делает, я не знаю), чтобы сказать ему, какие тесты для запуска. vstesthost.exe возвращает результаты выполнения в VS, который отображает эти результаты.
Если вы получаете OutOfMemoryExceptions при запуске ваших модульных тестов, я бы сказал, что это сильный индикатор того, что тестируемый код на самом деле не очищает вещи. Вы уверены, что не сохраняете дескрипторы неуправляемых объектов / памяти? Я бы порекомендовал запускать ваши модульные тесты с помощью Performance Analysis (вы можете сделать это, найдя модульный тест в «Test View», щелкнув по нему правой кнопкой мыши и выбрав «Create Performance Session»). Это может пролить некоторый свет, по крайней мере, на распределение объектов.