2015-08-07 15 views
18

Sto provando ad aggiungere test dell'interfaccia utente al mio progetto esistente utilizzando Xcode 7. Tuttavia il pulsante di registrazione del test dell'interfaccia utente è sempre disattivato. Cosa mi manca qui?Xcode 7 Test UI, il pulsante di registrazione è disattivato

Provato a riavviare Xcode. Pulizia e ricostruzione del progetto e aggiunta di un nuovo target di test dell'interfaccia utente. Qualcun altro ha lo stesso comportamento?

risposta

10

FWIW: Ho avuto questo problema e risulta che stavo cercando di eseguire il simulatore nel sistema operativo sbagliato.

Stavo cercando di utilizzare iOS8.x e UITEST funziona solo su iOS9 +.

Cambia la versione del simulatore e viene visualizzato il pulsante di registrazione.

+0

Le correzioni ai problemi di Apple ... semplicemente stupefacente! – smac89

+1

e non funziona per iOS 10+, perché questo accade? Interessante ... – yuchaozh

14

Sono rimasto bloccato su questo per un po 'di tempo. Per registrare, devi essere in una classe che Xcode riconosce come contenente test. Aggiungere un file al tuo target di test dell'interfaccia utente con qualcosa di simile:

import Foundation 
import XCTest 

class MyTests: XCTestCase { 
    func testSomething() { 

    } 
} 

Salvare il file, pulire il vostro progetto e passare ad un altro file poi di nuovo a questo. Il pulsante di registrazione dovrebbe essere disponibile quindi.

+0

Grazie @Maldron, ho fatto più volte, ma non ha funzionato. Dovuto riadattare nuovamente il target del test dell'interfaccia utente. Sembra che i test dell'interfaccia utente siano davvero buggy. – rustylepord

+3

A volte Xcode scappa e non riconosce un caso di test come un caso di test vero e proprio (non è possibile riprodurlo neanche perché l'opzione è mancante nella barra a sinistra della dichiarazione del metodo. riavviando alternativamente Xcode e disconnettendo e/o riavviando il simulatore o il dispositivo di test collegato Non ho dovuto riavviare il mio computer, almeno! –

+0

Riavvio Xcode ha risolto il problema per me. Grazie – Lisarien

-2

È necessario importare la classe di vista che si desidera testare. Quindi metti il ​​cursore nel metodo di prova.

1

Questo è un po 'sciocco, ma mancano alcuni articoli che ho letto.

Assicurati di avere un obiettivo UITest, un obiettivo di test regolare non lo ha fatto per me.

1

ho fatto un paio di cose da consentire il mio pulsante di registrazione:

  1. (opzionale, consigliato) - Cancellare tutti i regimi di prova e gli obiettivi di prova per il vostro progetto, ricominciare con la creazione di un nuovo UITest destinazione.
  2. Assicurati che il tuo schema UITest e lo schema di esecuzione del progetto principale puntino allo stesso obiettivo.
  3. Provare a cancellare gli altri schemi UITest se possono essere facilmente ricreati/non sono di assoluta importanza.
  4. prodotto> (Tenere premuto il tasto ALT)> Cartella generazione pulita
  5. prodotto> Clean (solo per misura di sicurezza)
  6. Chiudi progetto, smettere di Xcode.
  7. Esci da simulatore.
  8. Infine, riapri Xcode, carica il tuo progetto. Passare al file UITest e il pulsante rosso di gioia dovrebbe essere disponibile per l'uso.

Inoltre, assicurarsi che il target di build/run sia impostato su iPhone X 9.X.

11

Ho riscontrato lo stesso problema e la mia configurazione era corretta, iOS> = 9.0, l'obiettivo è stato aggiunto.

Il problema era l'indicizzazione Xcode che richiedeva un po 'di tempo (circa 1 ora), dopo che l'indicizzazione era terminata, il pulsante di registrazione diventa attivo.

+1

Questa sembra essere la risposta corretta a questa domanda per i target di test dell'interfaccia utente appena creati. La mia indicizzazione ha richiesto oltre 20 minuti dopo il quale il pulsante era disponibile. – earnshavian

+0

Ho reso questo processo più veloce chiudendo Xcode e riavviando Xcode di nuovo. Non appena ha terminato l'elaborazione e ho aggiornato la posizione del cursore, il pulsante di registrazione è diventato disponibile. – iCyberPaul

+0

In attesa dell'indicizzazione per finire risolto il mio problema. – Morgz

4

Per me, il problema era che il riquadro "Editor versione" era aperto. Non appena sono tornato all'Assistant Editor, ha funzionato.

1

Ho trovato un'altra soluzione che non ho visto elencata qui.

Se stai sottoclasse XCTestCase, cambiare la classe di ereditare da che ancora una volta, salvare il file, cambiare di nuovo al vostro nome sottoclasse. Non è necessario pulire o costruire.

Per il mio progetto ho un sottotitolo di XCTestCase, chiamiamolo APPMyTestCase. Trovo spesso che il pulsante di registrazione sia disattivato e talvolta i pulsanti verdi/rossi piccoli accanto a ciascun metodo di prova non sembrano in grado di eseguirli singolarmente. Se cambio la mia sottoclasse di nuovo a XCTestCase per un secondo, tutto funziona di nuovo.

Modifica questo:

class APPLoadingPageUITests: APPMyTestCase { 
    // tests here 
} 

A tal:

class APPLoadingPageUITests: XCTestCase { 
    // tests here 
} 

E poi di nuovo a questo:

class APPLoadingPageUITests: APPMyTestCase { 
    // tests here 
} 

Questo risolto per me.

0

Assicurarsi di avere solo una sottoclasse di XCTestCase per file. Vuoi che i nomi dei nomi dei file e dei nomi corrispondano.

In base alla mia esperienza, anche quando si utilizzano i test dell'interfaccia utente, se si aggiunge una nuova sottoclasse della sottoclasse XCTestCase in uso nello stesso file, il pulsante di registrazione verrà disabilitato (anche se tutte le altre UI di test continueranno a funzionare).

3

Aveva lo stesso problema su Xcode 8.3.

Ho rimosso il metodo tearDown

override func tearDown() { 
     super.tearDown() 

    } 

Poiché non avevano bisogno di usarlo. Non appena l'ho aggiunto, il pulsante di registrazione è stato abilitato.

10

Per attivare il pulsante rosso, si deve avere il cursore sul metodo di prova:

enter image description here

+2

Promemoria: il metodo di prova inizia con 'test' –

0

un metodo di prova deve iniziare con la parola test per Xcode a riconoscerlo e consentire la registrazione quando il il cursore è all'interno del metodo.

Un'indicazione che Xcode riconosciuto il metodo è un rombo apparendo a sinistra per il nome del metodo:

enter image description here