2014-06-18 22 views
6

Czy jest możliwe zdefiniowanie makra zdefiniowanego w (testowaniu) docelowych ustawieniach lub w testowym pliku .pch tak, aby był on przekazywany do całej aplikacji?
Czy jest jakieś makro już dostępne do sprawdzenia (z kodu), jeśli przeprowadzamy test?xctest - makro preprocesora

np

#if TEST=1 
    // do something 
#else 
    // do something else 
#endif 

Dlatego, że chcę to pominąć jakiś kod, twierdzi, itd. Podczas testowania (bez konieczności zmiany #define w głównej aplikacji .pch każdym razem biegnę testy) .

Dzięki.

+1

Udało Ci się osiągnąć więcej dzięki temu problemowi. Chciałbym dodać trochę testów do mojego kodu. Ale nie chcę, aby pojawił się w kodzie produkcyjnym. Niektóre rozszerzenia i funkcje pomocnicze. Tego typu rzeczy? – ahalls

+0

Osobiście skończyłem używając czegoś podobnego do opisanego tutaj: http://stackoverflow.com/a/15725328/727817. Inną dobrą opcją byłoby ustawienie nowej konfiguracji kompilacji tylko do testowania http://stackoverflow.com/a/14718914/727817 –

Odpowiedz

3

Wygląda na to, że możesz to zrobić w bardzo podobny sposób do Objective-C. Szybki kompilator przyjmuje przełącznik -D polecenia. Aby dostosować to do testów, zdefiniowałem Literał, którego chciałem tylko w ustawieniach Budowania celu testu.

Instrukcje:

Build settings for the Test Target -> 
     Swift Compiler Custom Flags -> 
     -DTEST (yes, including the -D prefix) 

Umożliwia to kod:

// Objective-C and Swift 
#if TEST 
// Test only code version code 
#else 
// App only code 
#endif 

znalazłem rozwiązanie w tym artykule na transitioning to swift.

+0

Wierzę, że działa to tak samo, jak ustawienie '# define' w pliku .pch celu testowego, wpływa tylko na klasy testowe, ale nie na rzeczywiste klasy aplikacji. Testowałem przy użyciu '' Other C Flags'', ale może być inaczej w przypadku Swift. –

Powiązane problemy