2015-04-30 19 views
116

Sto lavorando in rapido su xcode e per impostazione predefinita crea un file di test che fa riferimento a XCTest.Impossibile caricare il modulo sottostante per XCTest

Quando si imposta l'appartenenza di destinazione al mio progetto principale causa questo errore "Impossibile caricare il modulo sottostante per XCTest".

Se questa appartenenza di destinazione non è impostata, i test vengono eseguiti correttamente e tutto funziona correttamente.

PS: Sono nuovo di rapida ed è probabilmente una domanda stupida (per favore mi illumini)

+10

Non ci sono domande stupide cavalletta, solo domande stupide. ;-) Ottima domanda come chiunque leggerà avrà lo stesso problema. –

risposta

99

Il principale progetto non si collega con il quadro XCUnit. Dovresti creare un obiettivo di test separato per il tuo progetto, se non ne esiste già uno, e aggiungere i tuoi file sorgente di test a tale destinazione.

  1. Selezionare il progetto nel Navigatore progetto. Questo aprirà le impostazioni del progetto nell'editor.
  2. Fare clic sul pulsante "+" nella parte inferiore della colonna che elenca i propri target.
  3. Se si sta lavorando su un modello di progetto iOS, selezionare iOS > Test > iOS Unit Testing Bundle.

    Se si sta lavorando su un modello di progetto OS X, selezionare OS X > Test > OS X Unit Testing Bundle.

+2

Nel frattempo per iOS si chiama iOS UITesting Bundle (utilizzalo per i Test UI) o iOS Test Unit Unit (è per Test di unità ...) – kuzdu

118

Verificare che il file in questione non si trovi nell'obiettivo principale, ma solo il target di test. Solo il target di test avrà quel framework da importare.

+13

Se aiuta. Seleziona il tuo target 'Non Test' -> Crea Fasi -> Compila fonti. Assicurati che "ClassTest.swift" non sia nel normale target di build. –

+0

E se si trova nel pacchetto principale e nel pacchetto di test, come lo si rimuove dal pacchetto principale. –

+0

Funziona, grazie! – drewpts

1

Assicurarsi che l'appartenenza di destinazione sia spuntata per tutti i moduli quando viene selezionato il framework di test. È possibile visualizzare l'opzione Partecipazione target selezionando Visualizza-> Utilità-> Mostra File Inspector

12

Hai appena aggiunto il tuo file di test/classe al target principale e non al target di test per errore. Semplice come quella.

Soluzione:

1) Rimuovere file di prova da "fonti Compila" lista sulla scheda "Build Fasi" per obiettivo principale

2) Aggiungi stesso file in "Fonti Compila" nella scheda "Build Fasi" per il test di destinazione

deve risolvere il problema

4

Questo forse un po 'tardi, ma quello che hai da fare è:

fare clic su File> Ne w> Target> Bundle test unità iOS.

E quindi aggiungere i test in là. Questo ha funzionato per me. Il problema era che non ho selezionato creare test unitari quando ho creato il mio progetto. Spero che questo aiuti qualcuno.

2

Questo problema si verifica due volte nel progetto.

  1. Quando non si aggiunge UnitTestingBundle nel progetto quando si crea un nuovo progetto.
  2. Quando installi CocoaPods nel tuo progetto a volte non ogni volta.

1: Risposta:

  • Vai file Fare clic su File.

  • Quindi viene visualizzata la prima opzione Nuovo Fare clic su di esso.

  • Dopo aver fatto clic su di esso, si vede Qualche opzione Fare clic su Destinazione.

  • E quindi nel Search Test Search IOS Unit Bundle Bundle e Add Problem è risolto.

  • se il compilatore non può darti il ​​permesso di aggiungere questo, quindi prova il secondo metodo quando viene indicato di seguito.

2. Risposta CocoaPod Problema:

  • vai alla scheda prodotto Clicca sul prodotto.

  • Fare clic su pulito o premere cmd + k.

  • Il problema è risolto.

0

Ho fatto tutto quanto sopra, ma ancora non mi è stato permesso di accedere ai metodi che volevo testare. Ma prima di scrivere qualsiasi caso di test, ho costruito il progetto una volta e poi i metodi erano accessibili per il test. Quindi provalo e fammi sapere se ha risolto qualche problema.

+0

Questo in realtà non risponde alla domanda. Se hai una domanda diversa, puoi richiederla facendo clic su [Invia domanda] (https://stackoverflow.com/questions/ask). Puoi anche [aggiungere una taglia] (https://stackoverflow.com/help/privileges/set-bounties) per attirare maggiormente l'attenzione su questa domanda una volta che hai abbastanza [reputazione] (https://stackoverflow.com/help/ che cosa è-la reputazione). - [Dalla recensione] (/ recensione/post di bassa qualità/17123204) –

Problemi correlati