Ich versuche, die neue @testable
Deklaration von Swift 2 zu verwenden, um meine Klassen dem Testziel auszusetzen. Ich erhalte jedoch diesen Compilerfehler:
Intervals
ist das Modul, das die Klassen enthält, die ich verfügbar machen möchte. Wie werde ich diesen Fehler beseitigen?
quelle
@testable
), aber an den App Store gesendet werden müssen? WennEnable Testability
es sich nur um Debug-Builds handelt, wie geht das um? Muss ich meinen Testcode zur Freigabe herausziehen?In meinem Fall habe ich eine benutzerdefinierte Build-Konfiguration zum Testen (aufgerufen
Test
) und auchcocoapods
als Abhängigkeitsmanager verwendetIch musste die folgenden Zeilen am Ende meiner hinzufügen
Podfile
, um die Testbarkeit zu ermöglichenStandardmäßig
cocoapods
setztENABLE_TESTABILITY
aufYES
nur fürDebug
bautquelle
Stellen Sie sicher, dass Sie Ihre Kontrollkästchen in Ihrem App-Schema richtig eingestellt haben. Sie sollten Ihre Testziele für Archive Build deaktivieren .
quelle
Für diejenigen unter Ihnen, die dies nur beim Ausführen von Xcode Profiler erleben: Wechseln Sie die Profilerstellungskonfiguration in Ihrer Schemaverwaltung zu der Konfiguration, für die die Testbarkeit aktiviert ist - und die in den meisten Fällen debuggt:
quelle
Dies liegt wahrscheinlich daran, dass Ihr Hauptziel auf eingestellt
Enable Testability
istNO
. Sie sollten esYES
im Debug-Schema festlegen (das zum Ausführen Ihrer Tests verwendet wird).Wenn Sie Karthago verwenden, kann dieses Problem durch den Import von Frameworks mit verursacht werden
@testable
, da diese mit einem Release-Schema erstellt wurden.In den meisten Fällen ist es eine schlechte Praxis, Frameworks mit diesem Präfix zu importieren, damit Sie dies vermeiden können. Wenn Sie nicht können, sollten Sie
Enable Testability
im Release-Schema der Frameworks. https://developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Chapters/Introduction.html#//apple_ref/doc/uid/TP40001051-CH1-SW326quelle
Ich habe diesen Fehler erhalten, als ich Tests mit Bitrise ausgeführt habe.
Im Gegensatz zu anderen Benutzern sagen, dies ist nicht pro -
Target
Basis oder proSchema
Basis, es ist proConfiguration
Basis. Wählen SieTarget
->Build Settings
Registerkarte -> Suchen nachtestability
-> Aktivieren Sie es in der von Ihnen verwendeten Konfiguration .Bitte beachten Sie, dass Apple empfiehlt, dies für die Konfiguration zu aktivieren, die Sie zum Debuggen verwenden, nicht für AppStore.
quelle
Die obige Lösung ist in Ordnung, wenn Sie Pods / Karthago verwenden. Wenn Sie jedoch Frameworks von iOS selbst verwenden, z. B. Kontakte, müssen Sie diesen Frameworks unter "Bibliothekssuchpfade" des Ziels Ihres Hauptprojekts einen Pfad hinzufügen.
quelle
Wenn Sie versuchen, das Framework zu testen:
Gehen Sie zu Testziel -> Erstellungsphase -> Neue Kopierdateien erstellen -> Frameworks auswählen -> Alle rekursiv verwendeten Frameworks hinzufügen
quelle
Wenn Sie zufällig haben
Dann ist dies der richtige Weg.
quelle
Dies trat in meinen Projekten vor Xcode 8 nicht auf, aber nachdem ich auf Xcode 8 aktualisiert hatte, war ich ratlos.
Die hier veröffentlichten Antworten haben meine Probleme nicht gelöst. Für mich habe ich diese Tests einfach fallen gelassen, da sie nicht benötigt werden. Deaktivieren Sie also die Testschaltflächen:
Und jetzt ist der Fehler verschwunden.
quelle