2011-07-16 15 views
14

Quindi, sto passando un po 'di tempo a capirlo. Mi sono guardato intorno e non riesco a trovare alcuna informazione su questo.L'opzione "Test dopo la creazione" in XCode 4 non funziona

Quello che voglio fare è far eseguire SEMPRE i miei test di unità OGNI volta che costruisco il mio codice in XCode. Ho letto un numero di post, tra cui this question qui. Ho seguito le istruzioni per la lettera e la build non eseguirà i test.

quello che ho fatto:

  • mia suite di test è una dipendenza bersaglio della mia costruzione principale
  • mia build principale è "Test dopo la generazione" impostata su Sì
  • Tutti i test sotto la le fasi di "test" nello Schema sono presenti e sono state verificate

Se eseguo i test manualmente - tramite cmd + U o il menu - vengono eseguiti i test. Ho aggiunto un test non riuscito per provare a forzare il fallimento della build, quindi posso essere certo che siano in esecuzione. La build continua a passare bene e i test non vengono mai eseguiti.

Sono sicuro di aver saltato un passaggio qui, ma per la vita di me non riesco a trovare alcuna documentazione correlata ad esso. Qualcuno ha altri consigli o passaggi che dovrei fare?

+3

Hai aggiunto il tuo "target di prova" nella sezione "Test" delle impostazioni del target target principale? Per fare ciò, modifica lo schema di destinazione principale, fai clic sulla sezione "Test" dal pannello di sinistra e al pannello di destra aggiungi il target di prova. Quindi vai alla sezione "Costruisci" dal pannello di sinistra, e nella sezione a destra, controlla "Esegui" per il tuo obiettivo di test. spero che ti possa aiutare! – Learner

+0

@Learner Sì, l'ho già fatto. Sembra che si tratti di un problema con la versione di XCode in esecuzione - insieme ad altri bug di crash e simili che sto riscontrando. Vorrei che pubblicassero un aggiornamento per Snow Leopard. – aperkins

+0

@ Il commento di Learner ha funzionato per me, ho notato che non avevo il mio progetto di test impostato per essere eseguito nell'impostazione dello schema di build del target principale. –

risposta

0

Nelle fasi di generazione del target principale, aggiungere una nuova fase di esecuzione di Script di esecuzione. Il contenuto dello script dovrebbe essere:

"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests" 

che eseguirà il test - ma solo se può trovare i file .octest generati dal progetto. RunUnitTests vuole che PRODUCT_NAME sia il nome del test dell'unità e che WRAPPER_EXTENSION sia .octest (queste sono variabili Xcode). Se il tuo obiettivo principale è un target aggregato che ha i tuoi test E la tua app come dipendenze, puoi probabilmente farlo funzionare con questo in mente.

8

Non importa se "Test dopo generazione" è impostato su sì o no nel target Something.app. È necessario impostare "Test dopo generazione" su SÌ nella destinazione del test dell'unità. Assicurati inoltre che sia "Test" che "Esegui" siano selezionati per il target di test dell'unità nell'editor di schemi sotto le opzioni della scheda "Crea". Per vedere i risultati, fare clic su Log Navigator View> Navigators> Show Log Navigator (comando 7).

+0

Penso che questa dovrebbe essere la risposta accettata. È il primo che ho visto per le varie forme di questa domanda per fare tutto a posto, senza molti extra di passaggi "voodoo" che non fanno realmente parte della soluzione. Grazie, @Jared! –

Problemi correlati