mam sekcje w moim kodu (na przykład w AppDelegate.m), które nie powinny być tworzone dla testów jednostkowych, jakXcode: makra preprocesora dla kodu warunkowego DEBUG/TEST
#ifndef CONFIGURATION_TESTS
// Code that should not be compiled in the Unit Tests
#endif
Cele są ustawione przez Xcode, gdy wybierzesz "dodaj testy jednostek" podczas tworzenia nowego projektu. W pliku projektu dodałem flagę CONFIGURATION_TESTS do makr Preprocessor dla obiektu MyAppTests Built-Target, ale nie dla celu MyApp.
To był sugerowany sposób w wielu wpisach, które znalazłem.
Ale to nie działa, ponieważ (tak myślę) cel MyAppTests ma cel MyApp jako zależność, a ponieważ AppDelegate.m jest dodawany do celu MyApp, jest kompilowany z ustawieniami kompilacji MyApp, a więc CONFIGURATION_TESTS nie jest zdefiniowana.
w jednostce testu plików makro jest zdefiniowane i zachowuje się zgodnie z oczekiwaniami (ponieważ pliki testowe zbudować tylko przez MyAppTests cel?)
Czy ktoś wie jak to zrobić, myślałem, że będzie to wspólny problem ...
Mam ten sam problem i nie może zrozumieć to – shawnwall
„To nie działa: 1) CONFIGURATION_TEST zawsze jest prawdą? 2) nigdy nie jest prawdziwe? 3) działa w jednostce testowej, ale nie w aplikacji? 4) działa w aplikacji, ale nie w testach jednostkowych? (pytające umysły chcą wiedzieć ...) – geowar