Вы признаете, что это может быть плохой идеей, но вы можете не знать об альтернативах. Вам следует взглянуть на макетные среды - они могут предоставить способ внедрить альтернативные реализации в ваш код во время выполнения в ваших модульных тестах. Это установившаяся практика, позволяющая коду вести себя по-разному в испытания и производство.
По основному вопросу.
Это зависит от используемой вами платформы модульного тестирования. Мне неизвестна какая-либо особенность в NUnit (например), которая сообщает о вашем тесте. Другие фреймворки (такие как MS Test) вполне могут обеспечить это. Однако это легко сделать самостоятельно.
Если вы привязываетесь к исходному коду, просто используйте директиву # define , чтобы условно определить некоторую переменную, с которой вы можете переходить.
Если вы привязываетесь к библиотеке, Я бы порекомендовал создать свой собственный класс, который вы будете использовать для отслеживания того, находитесь ли вы в модульном тесте или в реальном коде, и установить этот класс в * 1023. * Метод установки TestFixture , чтобы указать, что вы запускаете тест. Вы также можете использовать Environment.SetEnvironmentVariable
как способ избежать написания специального класса.