2017-10-26 1 views
1

Ich habe ein bestehendes iOs-Projekt, dem ich ein Einheitentestziel hinzufügen möchte. Die Klassen, die ich testen möchte, sind sowohl in objektiver c als auch in swift.Hinzufügen von Komponententests für ein vorhandenes Ziel c + swift-Projekt

Ich habe es geschafft, ein Testziel zu erstellen, das es mir erlaubt, Swift-only-Code zu testen, indem ich die Implementierungs-Swift-Dateien zum Testziel hinzufüge.

aber sobald ich importieren oder eine Klasse verwenden, die Objective-C-Code importiert, laufe ich in Probleme Linkers, wenn das Testziel Aufbau:

... Symbols not found for architecture x86_64

Ich habe versucht, die Objective-mm Hinzufügen von Dateien zu meinem Ziel, das mein linker Fehler übergeben wird, aber ich bekomme dann einen unresolved identifier Fehler für die Klasse, die ich importiere.

Ich verwende Xcode 9 und schnell 3.

edit: Ich denke, das könnte etwas mit der Tatsache, die schnelle Überbrückung Header nicht in dem Testziel ist aber ich bin nicht sicher, wie um es hinzuzufügen.

+0

Welche Symbole werden nicht gefunden? Wie haben Sie es geschafft, Probleme mit mm-Dateien zu lösen? –

+0

Die Symbole, die nicht gefunden werden, stammen aus der objektiven c-Klasse, die importiert wird –

Antwort

0

Ihr Testprojekt ist ein separates Ziel und sollte alle Dateien, auf denen es basiert, separat getestet werden. Klicken Sie also zunächst auf eine der fehlenden Dateien .m und prüfen Sie, ob das Testprojekt auch in den Zielen enthalten ist. Wenn dies der Fall ist, könnte ein Problem mit dem Bridging-Header Ihres Testprojekts auftreten. Finde heraus, welche Version von den Build-Einstellungen deines Ziels verwendet wird und ob es die gleichen Dateien wie dein Hauptprojekt enthält.

Verwandte Themen