Например, у вас может быть переменная окружения для обозначения того, какой тест нужно запустить, с неустановленным значением, чтобы запустить их все (что будет обычным случаем). Вот так: (это C, но я думаю, что это будет работать и в объективном C)
char *env = getenv ("MY_TEST_ENV");
и затем при запуске каждого теста
if (! env || 0 == strcmp (env, "testOne"))
testOne();
Или вы можете поставить такое же условие внутри самого теста и просто вернуться, если он не пройден. Это не помешает вашим тестам быть скомпилированными, но я не думаю, что это ваша проблема, не так ли? Просто установите переменную среды для теста, который вы хотите запустить, и ни один из остальных не будет.
EDIT
Чтобы сделать это еще проще, поместите это в макрос
#define RUN_TEST(fn) do{if(!getenv("MY_TEST_ENV")||!strcmp(getenv("MY_TEST_ENV"),#x))x();}while(0)
и всегда выполняйте свой тест с этим
RUN_TEST(test_one);
... и у вас есть небольшой фреймворк для юнит-тестирования. Однако, прежде чем заходить слишком далеко и изобретать слишком много колес, вам следует (как уже было отмечено), возможно, взглянуть на существующие рамки.