Место размещения тестового кода зависит от того, что вы собираетесь делать с кодом. Если это отдельный класс, который, например, вы намереваетесь сделать доступным для загрузки и использования другими пользователями, тогда тестовый код должен быть проектом в рамках решения. Тестовый код, в дополнение к проверке того, что класс делает то, что вы от него хотели, послужит примером для пользователей вашего класса, поэтому он должен быть хорошо документирован и предельно понятен.
Если, с другой стороны, ваш класс является частью библиотеки или библиотеки DLL и предназначен для работы только в экосистеме этой библиотеки или библиотеки DLL, то должна существовать тестовая программа или инфраструктура, которая использует библиотеку DLL как юридическое лицо. Инструменты покрытия кода продемонстрируют, что тестовый код фактически выполняет код. По моему опыту, эти тестовые программы, как и одна программа класса, построены как проект в рамках решения, которое создает DLL или библиотеку.
Обратите внимание, что в обоих вышеупомянутых случаях тестовый проект не создается как часть стандартного процесса сборки. Вы должны построить его специально.
Наконец, если ваш класс должен быть частью более крупного проекта, ваш тестовый код должен стать частью любой среды или потока процессов, определенных для вашей большой команды. Например, в моем текущем проекте модульные тесты разработчика поддерживаются в отдельном дереве управления исходным кодом, структура которого параллельна структуре кода доставки. Модульные тесты необходимы для прохождения проверки кода как командой разработчиков, так и тестировщиками. В процессе сборки (каждый день прямо сейчас) мы создаем код доставки, затем модульные тесты, затем набор тестовых кодов QA. Модульные тесты выполняются до кода QA и все должны пройти. Это в значительной степени тест на дым, чтобы убедиться, что мы не нарушили самый низкий уровень функциональности. Модульные тесты необходимы для создания отчета об ошибке и выхода с отрицательным кодом состояния. Наши процессы, вероятно, более формальны, чем многие.