Я сталкиваюсь с этим довольно часто, это одна из главных причин, по которой я так ужасно отстаю в написании / поддержке тестовых наборов. В некоторых ситуациях условная компиляция поможет, но не всегда.
Например, если пакет должен тестировать обертку вокруг интерфейса более низкого уровня для общения с гипервизором, вам нужно протестировать пакет под гипервизором ... или написать кучу умных макросов / встроенных функций в 'fake' гипервизор, который на самом деле ничего не тестирует.
Это немного проще сделать при работе с устаревшими API dbms или типичным API виджетов acme.
Для устаревших тестов я настоятельно рекомендую загрузить кран (протокол тестирования любого) из ccan и сохранить эти тесты изолированными.
Обычно 80% моих тестов нужно обернуть так, и это очень очень утомительно и неприятно поддерживать. Надеюсь, у вас есть только несколько странностей, с которыми нужно бороться.
Пока кто-то не напишет какую-нибудь волшебную палочку для извлечения условий и параметров теста из комментариев с разумностью, вы застрянете в одной и той же летучей бумаге.
Удачи, я действительно сочувствую.