Ich möchte Dummy-Objekte zum Testen im Projekt hinzufügen, aber ich möchte nicht, dass sie in meinem endgültigen Build enthalten sind. Also ich habe meine AppDelegate
-Klasse und dort im Import:
Und später:
%Vor% Aber das Problem ist, dass ich das in mein Target Membership
, nicht mein Testziel aufnehmen muss. Gibt es eine Möglichkeit, diese Dateien nicht in mein Hauptziel aufzunehmen, sondern nur in das Test
-Ziel?
Bearbeiten: Was ich tun muss, ist meine App nach dem Start zu testen. Ich möchte es auf Simulator testen, aber App mit Beacons. Also habe ich Dummy-Objekte erstellt, die Beacons darstellen und den Location Manager simulieren. Wenn die App mit der TESTING-Option startet, startet sie nicht das Entfernungs-Beacon, sondern platziert stattdessen Dummy-Objekte als Beacon.
Sobald Sie diese Schritte ausgeführt haben, können Sie Ihrem Build Testklassen mit Testfunktionen hinzufügen. Um Ihre App mit der Testfunktion auszuführen, sollten Sie das Testschema auswählen, das unten konfiguriert ist.
Damit bedingte Importe und Funktionen zum Testen wirksam sind, benötigen Sie die folgenden Bestandteile:
1. Duplizieren Sie eine Konfiguration zum Testen
Gehen Sie folgendermaßen vor, wenn die Projektdatei im Projektnavigator ausgewählt ist:
2. Dupliziere ein Ziel zum Testen
Fügen Sie nun, nachdem Sie eine Testkonfiguration erstellt haben, ein Testziel hinzu. Wählen Sie im Projektnavigator mit der Projektdatei die folgenden Schritte aus:
Klicken Sie mit der rechten Maustaste oder bei gedrückter Wahltaste auf ein vorhandenes Ziel und wählen Sie "Duplizieren".
Tippen Sie auf das neue Ziel, um es umzubenennen, und ziehen Sie es, um Ihre Ziele neu zu ordnen.
3. Schemata verwalten
Jetzt, da Sie ein Testziel und eine Konfiguration haben, können Sie ein Schema hinzufügen, das auf das neue Ziel und die neue Konfiguration verweist.
Tippen Sie auf die Schemas (neben der Stopp-Schaltfläche) und wählen Sie Schemata verwalten ... aus.
Wenn Sie im Popup-Fenster Schema-Manager die automatische Erstellung von Schemas gewählt haben, wird das neue Schema bereits aufgelistet. Andernfalls können Sie im Popup auf + tippen, um ein Schema hinzuzufügen. Jedes Schema kann wie hier gezeigt geteilt werden:
Tippen Sie auf das neue Schema, um es umzubenennen, und ziehen Sie es zum Neuordnen:
Um das neue Schema zu bearbeiten, stellen Sie sicher, dass es ausgewählt ist, und tippen Sie auf Bearbeiten ...
Wählen Sie im Bearbeitungsfeld die Build-Konfiguration testen aus
Stellen Sie sicher, dass das Schema auf das Testziel zeigt, indem Sie auf die Dropdown-Liste Executable tippen:
Stellen Sie sicher, dass das Schema auf die richtige Build-Konfiguration für andere Aktionen wie Automated Testing zeigt:
4. Konfigurieren Sie die Buildeinstellungen für Ihre Ziele
Nachdem Sie Ihr Testschema so eingerichtet haben, dass es auf die Testkonfiguration zeigt, verhält es sich genau so wie die Debugkonfiguration, bis Sie die Buildeinstellungen ändern. Befolgen Sie diese Schritte, um die Build-Einstellungen für Ihre Testing-Konfiguration zu ändern:
Für die meisten Build-Einstellungen gibt es eine Option für jede Konfiguration. Stellen Sie bei der Auswahl der zu verwendenden Konfiguration in Ihren Einstellungen sicher, dass das Hauptziel ausgewählt ist:
Die Präprozessor-Makros befinden sich im Abschnitt "Apple LLVM 7.0 - Vorverarbeitung":
Tippen Sie auf eine Zeile, um sie auszuwählen, tippen Sie auf die Eingabetaste, um sie zu bearbeiten und Ihre Änderungen zu übernehmen. Verwenden Sie die Pfeiltasten, um sich nach oben oder unten zu bewegen. Es empfiehlt sich, alle Präprozessor-Makros für alle Konfigurationen wie folgt zu definieren:
5. Fügen Sie Ihrem Testziel eine Klasse hinzu
Nun zeigt das Testschema auf eine Konfiguration, die sich von Ihrer Debug-Konfiguration unterscheidet. Sie sollten nun in der Lage sein, das Testschema aus dem Dropdown-Menü "Schemata" auszuwählen und die Testkonfiguration auszuführen.
Sie können die Zielmitgliedschaft einer Klasse auf zwei Arten ändern.
Schemas werden normalerweise gepaart, um Konfigurationen zu erstellen. Eine gute Praxis ist es, für jede Zielgruppe ein Schema / eine Konfiguration zu haben, das eine andere Buildversion benötigt. Im Folgenden sind einige grundlegende Zielgruppen aufgeführt, die normalerweise separate Konfigurationen benötigen:
Wenn Sie eine Funktionalität im Testmodus ändern möchten, können Sie eine Unterklasse verwenden und die Unterklasse nur zu Ihrem Testziel hinzufügen.
Okay, wenn ich es richtig verstanden habe, solltest du:
Am Ende des Tages wird Ihr Testziel nur zwei weitere Klassen (Mock Beacon Manager und Mock Beacon) im Vergleich zum Hauptziel enthalten. Es sind keine weiteren Änderungen an der Projektstruktur oder Codesemantik erforderlich. Viel Glück.
Tags und Links objective-c ios xcode build-settings