Xcode: макросы препроцессора для условного кода DEBUG / TEST

В моем коде есть разделы (например, в AppDelegate.m), которые не следует компилировать для модульных тестов, например

#ifndef CONFIGURATION_TESTS
// Code that should not be compiled in the Unit Tests
#endif

Целевые объекты устанавливаются Xcode, когда вы выбираете «добавить модульные тесты» при создании нового проекта. В файле проекта я добавил флаг CONFIGURATION_TESTS к макросам препроцессора для встроенной цели MyAppTests, но не для цели MyApp.

Это предлагалось во многих сообщениях, которые я нашел.

Но это не работает, потому что (я полагаю) цель MyAppTests имеет цель MyApp в качестве зависимости и поскольку AppDelegate.m добавлен в цель MyApp, он компилируется с настройками сборки MyApp и, следовательно, CONFIGURATION_TESTS не определено.

В файлах модульного теста макрос определен и ведет себя так, как ожидалось (потому что тестовые файлы создаются только целью MyAppTests?)

Кто-нибудь знает, как это сделать, я подумал, что это обычная проблема. ..

11
задан MeXx 21 February 2012 в 00:16
поделиться