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