2012-04-10 4 views
1

Ich versuche, Anwendungstests für meine iOS-Anwendung einzurichten. Ich verwende den folgenden Artikel als Grundlage für das, was ich tue: http://cocoawithlove.com/2009/12/sample-iphone-application-with-complete.html

So kann ich die zusätzlichen Ziele erstellt, die ich brauche. Ich habe jetzt drei Ziele: -Die ursprüngliches Ziel -Die Tests Ziel -Die doppeltes Ziel

ich das ursprüngliche Ziel als Ziel Abhängigkeit zu meinem Testziel hinzugefügt habe. Ich habe dann das Testziel als Zielabhängigkeit von meinem doppelten Ziel hinzugefügt.

Jedes Mal, wenn ich versuche, jede meiner Klassen in meinem Testfälle zu verweisen ich:

undefinierte Symbole für Architektur ARMv7: "_OBJC_CLASS _ $ _ MyClass", verwiesen von: objc-Klasse-ref in MyApplicationTests .o "_OBJC_CLASS _ $ _ Andere", verwiesen von: objc-Klasse-ref in MyApplicationTests.o ld: Fehler: Symbol (e) nicht für Architektur ARMv7 Klirren gefunden Linker Befehl fehlgeschlagen mit Exit-Code 1 (Verwendung -v (siehe Aufruf)

Gibt es einen anderen Ort Welche Art von Abhängigkeit muss ich einrichten, um meinem Testziel mitzuteilen, dass es vom ursprünglichen Ziel abhängig ist?

Prost

Antwort

6

So fand ich die Lösung für dieses Problem an: http://twobitlabs.com/2011/06/adding-ocunit-to-an-existing-ios-project-with-xcode-4/

Sie müssen die folgenden zu vermeiden, um dieses Problem zu tun:

zu Ihrem App Ziel Gehen Sie zurück (nicht das Testziel), stellte den Symbole Versteckt von Standard build Einstellung nO

Jetzt gibt es keine Notwendigkeit, alle Quelldateien an die Compile Quelle für das Testziel hinzuzufügen, solange das ursprüngliche Ziel als Abhängigkeit gesetzt.

+1

OMG nach einem Tag zu versuchen, herauszufinden, warum das plötzlich nicht funktionierte, hat dieser kleine Flip es behoben. – shortstuffsushi

+0

Ich erhebe jede andere Antwort, die Sie jemals gegeben haben, als Dank dafür !! – jemmons

0

Sie haben die .m-Datei für jede Ihrer Klassen enthalten, die Sie von Ihrem Testcode in der Liste der kompilierten Quellen für Ihre Testziel verweisen. Aus der Fehlermeldung, die Sie angegeben haben, klingt das nach Ihrem Problem. In XCode 4.2 können Sie einem Ziel eine Kompilierungsquelle hinzufügen, indem Sie Ihr Projekt im Projektnavigator auswählen, dann Ihr Testziel auswählen, die Registerkarte "Phasen erstellen" und den Abschnitt "Kompilierungsquellen" erweitern. Klicken Sie auf das "+" unter dem Compile Sources Abschnitt und wählen Sie dann Ihre Klasse .m-Datei.

+0

Führt das Hinzufügen einer Zielabhängigkeit nicht dazu? Das bedeutet, dass ich jedes Mal, wenn ich meinem Projekt eine neue Datei hinzufüge, auch mein Testziel aktualisieren und diese Datei in die Kompilierquellen einbeziehen muss. Scheint ein bisschen ineffizient. – KTas

+0

Ja. Es ist nicht so schwer. Wenn Sie Ihrem Projekt eine Datei hinzufügen, sehen Sie im Dialogfeld, in dem Sie den Dateinamen angeben, unten eine Liste der Ziele. Sie überprüfen nur die zutreffenden. Ich denke, es kann sogar die Einstellungen von einer Datei zur nächsten speichern. – strings42

+0

Die seltsame Sache ist, dass das Projekt aus dem Blog-Post, den ich oben verlinkt habe, dies nicht tut. Das Testfallziel hat keine Quelldateien in Kompilierquellen außer seinen eigenen Testfalldateien und einigen OCMock-Dateien. – KTas