2013-09-22 17 views
11

Ho creato alcuni casi di test e tutti sono passati ... Questo perché non vengono eseguiti.Xcode 5: Test dell'unità non in esecuzione

Da Xcode, ottengo: (lezioni e test di unità)

Test Suite 'All tests' started at... 
Test Suite 'All tests' finished at... 
Executed 0 tests, with 0 failures (0 unexpected) in 0.00 seconds 

Il progetto di costruire con successo.

Tutte le mie classi di test hanno MyApp_appTests come appartenenza di destinazione selezionata. Le classi di produzione hanno gli obiettivi MyApp_app & MyApp_appTests selezionati.

Ho verificato il MyApp_appTests Target Build Settings (Bundle Loader & Test Host).

Bundle Loader (Debug): $(BUILT_PRODUCTS_DIR)/MyApp.app/MyApp 
Test Host (Debug): $(BUNDLE_LOADER) 

Ho importato SenTestingKit.framework (attraverso obiettivi Costruire Fasi "Link binari con le librerie").

Tutte le mie prove iniziano con -(void)testThat...

Inoltre ho controllato alcune domande stackoverflow.com:

stackoverflow.com/questions/8632254/xcode-4-2-cant-run-unit-test stackoverflow.com/questions/3608484/ocunit-tests-not-running-not-being-found stackoverflow.com/questions/16672616/ocunit-test-cases-not-running

e questo post:

twobitlabs.com/2011/06/adding-ocunit-to-an-existing-ios-project-with-xcode-4/

Non so dove cercare ... Qualsiasi aiuto è molto apprezzato!

+0

Non è necessario importare 'SenTestingKit.framework' in Xcode 5. Controllare il video WWDC-13 sui test dell'unità Xcode 5. – zaph

+0

Se non lo faccio, visualizzo gli errori di compilazione (_OBJC_METACLASS _ $ _ SenTestCase "come simbolo non definito per l'architettura armv7). Ciò rivela una configurazione errata nel mio progetto? – invalidArgument

+0

Se si utilizza il modello Xcode 5 per creare l'ambiente di test il progetto includerà un target di test e un test funzionante (e non funzionante) – zaph

risposta

5

Xcode 5 ora utilizzato XCTestCase, non SenTest. Apple sta ora supportando l'Unit Testing in modo più diretto includendo la propria versione di SenTest denominata XCTestCase. Inoltre, l'interfaccia utente è molto migliorata, consentendo l'esecuzione di test individuali, un test di navigazione e non creando più file di test .h. Si noti che le macro di test non vengono rinominate con un prefisso XC.

Vedere il video WWDC-13 409: "Test in Xcode 5".

Se si utilizza il modello Xcode 5 per creare l'ambiente di test, il progetto includerà un target di test e un test funzionante (e non funzionante).

+9

In realtà in Xcode 5 OCUnit coesiste con XCTest – voromax

23

Per me ha funzionato cambia "estensione Wrapper" da "OCTest" a "xctest" in Parametri di compilazione per i test di mira

enter image description here

+1

Questo ha funzionato per me. Avevo bisogno di farlo dopo aver selezionato Modifica-> Refactor-> Converti in XCTest ... –

+0

Nel mio caso, non avevo refactored test di xisting, ho notato che tutti i SenTest venivano eseguiti e visualizzati nel navigatore di test (Xcode 5.1) ma mentre il nuovo XCTestCase era elencato nel navigatore non è mai stato invocato - i punti di interruzione non colpiscono mai, ecc. Passando l'estensione del wrapper a 'xctest' attivato in esecuzione di entrambi i tipi di test nello stesso progetto. –

0

Se si sta creando un nuovo target di prova in Xcode 5+ e la pianificazione di usa SenTestKit per i test unitari, cambiando l'impostazione di build 'Wrapper Extension' del tuo target di test su 'octest' dall'impostazione predefinita 'xctest' aiuterà a eseguire i casi di test.

2

Prova questo:

  1. Clean Progetto Derivato dati
  2. prodotto> Clean
  3. eseguire l'applicazione
  4. Attendere Xcode indicizzazione per finire

A questo punto i test dovrebbero riappare nel riquadro Test Navigator

0

Ho avuto questo problema con Xcode 7.3, ciò che ha funzionato per me era eseguire l'applicazione sul dispositivo una volta e quindi eseguire i test.