2015-06-15 14 views
15

Sto provando a testare le classi nella mia app iOS. Sto cercando di importare l'obiettivo Pickle nella mia app che ha tutte le mie classi nel mio obiettivo di test PickleTests aggiungendo import Pickle nella parte superiore del mio file di test PickleTests.swift, ma continuo a ricevere un errore.

L'errore che continuo a ricevere è: "Impossibile importare l'intestazione di bridging (percorso dell'intestazione di bridging)" (il percorso dell'intestazione del bridging è mostrato nell'errore, non nelle parentesi).

Ho provato a impostare "Definisce modulo" nelle impostazioni di generazione per il target Pickle su "Sì", ma non funziona ancora. Ho anche verificato nelle impostazioni di build che ha il percorso corretto per il file di intestazione del bridging.

Qualche idea su come posso impostare i miei test? Sono su Xcode 6.3.2. Per favore fatemi sapere se avete bisogno di ulteriori informazioni.Impossibile importare le classi swift principali nella destinazione di prova?

Aprire l'immagine in una nuova scheda per vederlo più grande.

+0

Si ottiene questo errore solo aggiungendo 'import', senza test effettivi? – matt

+0

@matt Questo è corretto. Posso aggiungere un'immagine alla domanda – dcgoss

+0

La prima cosa che suggerirei è che basta eliminare il target di test e tutti i file di test e creare un nuovo target di test. Dato che non hai ancora dei test, non hai nulla da perdere ... :) – matt

risposta

27

Mille grazie a @matt per avermi aiutato con questo!

Fare clic con il tasto destro del mouse sulle immagini e aprirle in una nuova scheda per ingrandirle.

Come discusso su https://github.com/CocoaPods/CocoaPods/issues/2695, il problema sembrava essere quello di avere Cocoapods come parte del progetto. La risposta nella parte inferiore del link che risolve il problema richiede di fare clic sulle impostazioni dell'applicazione, quindi fare clic sul tuo progetto Info (non su nessuna delle impostazioni dei tuoi obiettivi). Vi si possono vedere i tuoi Configurations impostazioni: enter image description here

Noterete anche che ci sono due bersagli nelle impostazioni di configurazione, e che le impostazioni di configurazione di prova obiettivo saranno stabiliti a nessuno, mentre il vostro obiettivo principale sarà collegato ai Cocoapods. La correzione sta nel cambiare il valore None accanto al Testing Target alla stessa cosa che l'Obiettivo Principale ha: enter image description here

Così ora sono entrambi collegati ai Cocoapod. Assicurati che il tuo obiettivo principale sia Defines module impostato su Yes nel suo Build Settings, crea il tuo progetto e l'errore nei file di test dovrebbe andare via.

Inoltre, dopo aver eseguito questa correzione, ho riscontrato un altro errore in cui il linker generava un errore lamentandosi della mancanza di una libreria nel mio obiettivo di test. Questa libreria mancante era un'altra dipendenza che avevo nel mio progetto e ho risolto questo errore assicurandomi che tutte le mie dipendenze collegate nel mio target principale Link Binary with Libraries nelle sue impostazioni Build Phases siano state copiate su Target di test Link Binary with Libraries nelle sue impostazioni Build Phases.

+0

Fantastico !! Ha funzionato –

3

Non devi farlo. Puoi usare link_with nel tuo Podfile. Nel tuo caso lo faresti.

link_with 'Pickle', 'PickleTests' 

E poi pod update

+0

'link_with' è stato deprecato e si consiglia di utilizzare' abstract_target' –

Problemi correlati