xcode-scheme

___ tag123xcode ___ Xcode ist Apples integrierte Entwicklungsumgebung (IDE). NUTZUNGSHINWEIS: Verwenden Sie dieses Tag nur für Fragen zur Xcode-IDE selbst und nicht für allgemeine Mac- oder iOS-Programmierungsthemen. Verwenden Sie [Kakao] für Mac-Programmierfragen und [Kakaotouch] oder [ios] oder [Swift] für iOS-Programmierfragen. ___ tag123unittesting ___ Unit Testing ist eine Methode, bei der einzelne Quellcode-Einheiten auf ihre Tauglichkeit getestet werden. ___ qstnhdr ___ Verschiedene Build-Konfigurationen für Testschemata ___ qstntxt ___

Gibt es eine Möglichkeit, die Komponententests in einem Debug-Build und Leistungstests in einem Release-Build auszuführen, ohne einzelne Schemata manuell auszuwählen und auszuführen?

Ich habe einen Komponententest und ein Leistungstestschema. In der Testkonfiguration für das Komponententestschema habe ich Debug-Build ausgewählt, und für das Leistungstestschema habe ich Release-Build ausgewählt. Wenn ich jedes Schema einzeln ausführe, bekomme ich einen Debug-Build bzw. einen Release-Build.

Wenn ich ein anderes Schema erstelle, das beide Schemata ausführt, dann hat das neue Schema seine eigene Build-Konfiguration. Wenn ich eine Build-Konfiguration für das Debugging für dieses neue Schema einstelle, dann bekomme ich auch einen Debug-Build für meine Leistungstests.

    
___ tag123xctest ___ XCTest ist ein von Apple bereitgestelltes Framework, das Komponententestfunktionen implementiert. Es funktioniert mit iOS 7 und allen Versionen von OS X. ___ answer38290904 ___

Es könnte einen Weg geben, das gewünschte Verhalten zu erreichen, aber es ist eher ein Hack.

Das Hauptproblem, das ich sehe, ist die gewünschte Build-Konfiguration für die Testaktion des Schemas. Da die Erstellungskonfiguration für alle Ziele im Schema gilt, müssen Sie eine Möglichkeit finden, Xcode dazu zu bringen, Ihr Ziel sowohl mit Debug- als auch mit Release-Konfiguration zu erstellen. Davon abgesehen, hier ist die Idee:

  1. Exportieren Sie die Release-Konfiguration für Ihr Ziel in eine xcconfig-Datei ( %code% und stellen Sie sicher, dass sie nur die Release-Einstellungen enthält)
  2. Erstellen Sie ein anderes Ziel für Ihre Leistungstests, die dieselben Quelldateien erstellen
  3. Setzen Sie die Debug-Konfiguration dieses neuen Ziels auf die zuvor erwähnte xcconfig-Datei der Release-Konfiguration (das ist im Grunde der Teil, wo wir Xcode täuschen)
  4. Fügen Sie der Build-Aktion Ihres Schemas das Original und das neu erstellte Ziel hinzu und fügen Sie die Test-Bundles hinzu (vorausgesetzt, sie befinden sich in einem separaten Test-Bundle)
  5. Wählen Sie die Debug-Build-Konfiguration für die Testaktion aus.

Wenn Sie Ihr Schema testen, sollte es jetzt die Quellen sowohl im Debug- als auch im Release-Release erstellen und Ihre Komponententests für die Debug-Build-Konfiguration und die Leistungstests für die Release-Konfiguration ausführen.

Das Setup ist etwas fragil, da Sie beiden Zielen neue Quelldateien hinzufügen müssen. Sie sollten in der Lage sein, den Prozess mit einem Ruby-Skript und dem xcodeproj-Juwel zu automatisieren.

Ich hoffe, das hilft.

    
___ tag123xcode8 ___ Xcode 8 ist eine IDE, die von Apple für die Entwicklung von macOS-, iOS-, watchOS- und tvOS-Anwendungen entwickelt wurde. Die erste Version von Xcode 8 war am 13. Juni 2016 mit Xcode 8 Beta Build 8S128d. * Verwenden Sie dieses Tag nur, wenn Ihre Frage speziell die Xcode-IDE betrifft! * ___ tag123xcode scheme ___ Xcode-Schemata helfen beim Einrichten verschiedener Umgebungen für verschiedene Builds. Xcode-Schemata helfen beim Festlegen verschiedener Umgebungsvariablen für das Ausführen, Debuggen, Freigeben, Profilieren und Archivieren. ___ answer38278424 ___

Sie könnten verschiedene Test-Bundles verwenden und das, was Sie wollen, einschließen / ausschließen.

Was ich meine, ist die Erstellung eigener Testziele (Bundles) und die Verwendung des Xcode Test Navigators.

Also zum Beispiel ein %code% Ziel und ein %code% Ziel erstellen. Sie wären zwei separate Test- "Bündel", in denen Sie Klassen, Methoden usw. einschließen / ausschließen möchten.

Der Testnavigator zeigt eine hierarchische Liste der Testpakete und zugehörigen Klassen, Methoden usw. in einem Projekt an.

Sie können Testpakete, -klassen und -methoden selektiv aktivieren und deaktivieren, indem Sie bei gedrückter Strg-Taste auf die Elemente in der Testnavigatorliste klicken und im Kontextmenü Aktivieren oder Deaktivieren aktivieren bzw. deaktivieren in dem Schema.

Testen mit Xcode - Schnellstart

Mit Xcode testen - Tests ausführen und Ergebnisse anzeigen

Es gibt mehrere zusätzliche interaktive Möglichkeiten zum Ausführen von Tests. Xcode führt Tests basierend darauf durch, welche Testziele in einem Schema enthalten und aktiviert sind. Mit dem Testnavigator können Sie direkt steuern, welche Testziele, Klassen und Methoden in einem Schema enthalten, aktiviert oder deaktiviert sind, ohne den Schemaeditor verwenden zu müssen.

Ich bin mir nicht sicher, ob dies das ist, was Sie wollen, aber dies ist die einzige Option, die ich mir zum Testen vorstellen kann, ohne zum Schema-Editor zu wechseln.

    
___
2
Antworten

Verschiedene Build-Konfigurationen für Testschemata

Gibt es eine Möglichkeit, die Komponententests in einem Debug-Build und Leistungstests in einem Release-Build auszuführen, ohne einzelne Schemata manuell auszuwählen und auszuführen? Ich habe einen Komponententest und ein Leistungstestschema....
30.06.2016, 07:20