Я согласен с комментариями, в которых говорится, чтобы вообще не делать этого, но я делал это в прошлом сам. IIRC, он использовался для переключения между «базой данных модульных тестов» (то есть, выбрасыванием) и «базой данных тестов с полезными данными в них», которая была случайно стерта модульными тестами слишком много раз ...
Наше решение состояло в том, чтобы иметь класс UnitTestDetector (или что-то в этом роде), который имел бы единственное статическое свойство "InUnitTest". Это будет определяться тем, был ли загружен NUnit в текущем домене приложения (опять же, IIRC). После первого исследования результат будет кэширован, чтобы предотвратить снижение производительности.