2013-07-15 6 views
6

Come faccio a rendere dinamico l'host di test/caricatore di pacchetti in base allo schema corrente? In questo momento il valore è impostato su:"host di test" dinamico o caricatore di bundle per il test dell'unità iOS?

$(BUILT_PRODUCTS_DIR)/MyApp1.app/MyApp1 

Il problema è che ho 4 applicazioni in spazio di lavoro e vorrei utilizzare la stessa suite di test di unità per tutti loro. Come faccio a cambiare dinamicamente la parte "MyApp1" in base allo schema corrente? È una variabile di ambiente basata durante la compilazione? Ho provato a impostarlo su cose come $ (PROJECT_NAME) ma sembra che abbiano il nome della suite di test.

+0

Sono di fronte allo stesso problema. Ho diversi obiettivi in ​​cui voglio eseguire lo stesso test di destinazione. Ovviamente troppo da gestire per Xcode. La mia soluzione era quella di aggiungere uno script per poter modificare XCodeProject e quindi indirizzare l'app giusta. –

risposta

7

Per fare ciò è necessario disporre di una variabile all'interno delle impostazioni di generazione, il che sembra semplice, ma non lo è. Se si imposta una variabile di ambiente attraverso un Pre o Post-step nell'applicazione o nello schema di test, non sembra che verrà raccolto qui. Le impostazioni di costruzione, dopo tutto, si verificano prima della compilazione. Lo stesso è vero per una macro del preprocessore, sebbene farlo usando xcodebuild e il passaggio in un'opzione personalizzata possa funzionare.

L'unico modo che conosco per farlo è quello di utilizzare un file xcconfig. Creane uno e applicalo (almeno) al tuo obiettivo di test. Il contenuto dovrebbe includere qualcosa di simile: THINGUNDERTEST=FooBar

Ora nelle impostazioni di progetto, che scendessimo in un file di progetto xcconfig o, impostare BUNDLER_LOADER a: $(BUILT_PRODUCTS_DIR)/$(THINGUNDERTEST).app/$(THINGUNDERTEST)

che funzionerà. Ora puoi cambiare THINGUNDERTEST con vari mezzi e ottenere almeno un comportamento dinamico. Questo potrebbe funzionare per te o no, a seconda delle tue esigenze, ma probabilmente è solo un punto di partenza.

+0

Nel mio caso, il mio target di test richiede un'applicazione host. Quindi 'BUNDLER_LOADER' legge il valore da' TEST_HOST'. Quindi ho impostato '$ (BUILT_PRODUCTS_DIR)/$ (THINGUNDERTEST) .app/$ (THINGUNDERTEST)' su 'TEST_HOST'. – Hlung

+0

Funziona davvero. Nel mio caso stavo inviando il valore risolto in modo dinamico di '' 'THINGUNDERTEST''' all'app come argomento della riga di comando xctool. Lo stesso dovrebbe funzionare per xcodebuild. Per esempio. '' 'xcodebuild THINUNDERTEST = Test di MyApp''' –

Problemi correlati