Frage

Ich schaue mir XCTest- und Xcode 5-Unit-Tests an und sehe nicht, wie ich meine Unit-Tests unter Instruments in Xcode 5 ausführen soll ...

Insbesondere möchte ich während des Tests nach Lecks suchen (dies muss in diesem Fall nicht automatisiert werden, obwohl das natürlich nützlich wäre).

Möglich?

War es hilfreich?

Lösung

Ich denke, das ist der einfachste Weg:

    .
  1. Stellen Sie einen Haltepunkt irgendwo in Ihren Tests ein (ich habe es in der Setup-Methode gemacht)
  2. Öffnen Sie ein neues Dokument in Instrumenten
  3. Führen Sie die Anwendung aus und stellen Sie sicher, dass es bei einem Haltepunkt gestoppt ist
  4. aus dem Zielabfall in Instrumenten auswählen Wählen Sie an, um zu verarbeitet, und blättern Sie zu Ihrem Prozess
  5. Klicken Sie auf Datensatz und nehmen Sie dann in Xcode wieder auf

Andere Tipps

Klicken Sie in Xcode mit der rechten Maustaste auf Ihren Test im Test Navigator und wählen Sie "Profil" Testname "":

 Instrumente Profileinheit Testspeicher

So machen Sie es unter Xcode 6 richtig:

1) Öffnen Sie in Ihrem Xcode-Projekt den Ordner „Produkte“, wählen Sie das Produkt „.xctest“ aus, klicken Sie mit der rechten Maustaste und wählen Sie schließlich im Kontextmenü „Im Finder anzeigen“.

2) Starten Sie Instruments und erstellen Sie ein neues Dokument mit der Vorlage Ihrer Wahl.

3) Wählen Sie „Ziel auswählen…“ für das Dokument

4) Navigieren Sie zu dem Tool, das Xcode zum Ausführen von Tests verwendet, und wählen Sie es aus /Applications/Xcode.app/Contents/Developer/usr/bin/xctest (Sie können diesen Ort finden mit xcrun -f xctest im Terminal) – Sie müssen „Pakete durchqueren“ aktivieren, um innerhalb der Xcode-App navigieren zu können.

5) Ziehen Sie das in Schritt 1 angezeigte Produkt „.xctest“ per Drag & Drop aus dem Finder in das Feld „Argumente“ – dadurch wird der absolute Pfad eingetragen.

6) Klicken Sie auf „Auswählen“.

Sie sind jetzt bereit, Ihre Unit-Tests von Instruments aus durchzuführen!

enter image description here

I created a new target based on the mac app target I am testing, then added the xctest classes to the files to compile.

I then added the /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks/XCTest.framework to the frameworks to link against.

Then added its path $(DEVELOPER_DIR)/Platforms/MacOSX.platform/Developer/Library/Frameworks to the Runpath Search Paths.

Then in the main.m I added the following:

    XCTestSuite *suite = [XCTestSuite testSuiteWithName:@"My tests"];
    [suite addTest:[VideohogCachingTest testCaseWithSelector:@selector(testCompleteSequentialText)]];
    [suite run];

This ran the test testCompleteSequentialText on the class VideohogCachingTest I needed to run as a normal application, therefore allowing me to run the test by either command+R or in this case, profiling with command+I. I could then catch a zombie and trace the problem, which was not a possibility for me previously. If you'd like to run all your tests you can do:

XCTestSuite *suite = [XCTestSuite defaultTestSuite];
[suite run];
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top