Как обычно вы идете разделять свою кодовую базу и связанные с ней модульные тесты? Я знаю людей, которые создают отдельный проект для модульных тестов, который я лично считаю запутанным и сложным в обслуживании. С другой стороны, если вы смешиваете код и его тесты в одном проекте, вы получаете двоичные файлы, связанные с вашей инфраструктурой unit test (будь то NUnit, MbUnit или что-то еще) и ваши собственные двоичные файлы рядом.
Это хорошо для отладки, но как только я создаю версию выпуска, я действительно не хочу, чтобы мой код ссылался на модульную структуру тестирования.
Одно из решений, которое я нашел, заключается в том, чтобы заключить все ваши модульные тесты в директивы #if DEBUG - #endif: когда код не ссылается на единичную тестовую сборку, компилятор достаточно умен, чтобы опустить ссылку в скомпилированном коде.
Есть ли другие (возможно, более удобные) варианты для достижения аналогичной цели?