2014-06-18 20 views
6

Hedef testlerinde veya test .pch dosyasında, uygulamanın tamamına iletilecek şekilde tanımlanmış bir makro mu var?
Ya da test yapıyorsak, kontrol etmek için (koddan) herhangi bir makro var mı?xctest - önişlemci makro

örn:

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

Bu, bazı kod atlamak etmektir (ana app .pch her seferinde ben testler bir #define değiştirmek zorunda kalmadan) test sırasında vs. iddia istiyorum nedeni .

Teşekkürler.

+1

Bu sorunla ilgili daha fazla bilgi aldınız. Koduma bazı test fikstürleri eklemek istiyorum. Ancak üretim kodunda görünmesini istemiyorum. Bazı uzantılar ve yardımcı işlevler. Bu tarz bir şey? – ahalls

+0

Şahsen, burada açıklandığı gibi benzer bir şey kullanarak sona erdi: http://stackoverflow.com/a/15725328/727817. Başka bir iyi seçenek, sadece http://stackoverflow.com/a/14718914/727817 –

cevap

3

Bunu, Objective-C'ye çok benzer bir şekilde yapabilirsiniz. Hızlı derleyici -D komut anahtarını alır. Bunu testlere uyarlamak için sadece Test Hedefi Oluşturma ayarlarında istediğim Literal'ı tanımladım.

Talimatlar:

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

bu kodu sağlar:

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

ben transitioning to swift bu makalesine çözüm buldu.

+0

test etmek için yeni bir yapılandırma yapılandırması oluşturmaktır. Bunun, test hedefinin .pch'inde bir '# define 'ayarlamasıyla aynı şekilde çalıştığına inanıyorum. Bu, yalnızca test sınıflarını etkiler, ancak gerçek uygulama sınıflarını etkilemez. '' Diğer C Bayrakları '' kullanarak test ettim, belki de hızlı bir şekilde farklıdır. –