Das Xcode-Projektschema ist derzeit nicht für die Testaktion konfiguriert

83

Ich versuche, einen Xcode-Komponententest für meine iOS-Anwendung auszuführen. Ich bin bereit, dies auf einem iPad zu tun, das über USB mit einem Mac verbunden ist. Ich versuche, den Test über die Befehlszeile auszuführen, um ihn später von Jenkins aus auszulösen.

Unten sehen Sie, was ich gerade in die Befehlszeile eingebe und welchen Fehler ich bekomme. Bitte helfen Sie.

Der Code:

xcodebuild test -scheme MyApplication -destination "platform=iOS,name=iPad"

Der Fehler:

Schema MyApplication ist derzeit nicht für die Testaktion konfiguriert

danR
quelle
Es scheint kein Problem mit Jenkins zu sein, da Sie Jenkins noch nicht verwenden. Ich empfehle Ihnen, das Jenkins-Tag zu entfernen. Suchen Sie hier nach ähnlichen Fragen, um festzustellen, ob sie helfen oder nicht. stackoverflow.com/questions/20237064/… stackoverflow.com/questions/25970396/…
Mainframer
Danke für den Vorschlag. Ich bin bereits auf dieses Beispiel gestoßen. Sieht aus wie nicht direkt mit meinem Problem verbunden. In meinem Fall hat dies wahrscheinlich etwas mit der Schemafreigabe zu tun. Ich habe ein paar Schemata in meinem Xcode-Projekt, habe versucht, sie auf unterschiedliche Weise zu teilen / zu teilen, zu löschen und neu zu erstellen - immer noch kein Glück.
danR

Antworten:

200

Für mich war das Problem, dass meinem Schema keine Tests hinzugefügt wurden:

Schema-Editor

Durch Hinzufügen von Testpaketen zu meinem Schema über die Schaltfläche '+' kann das Schema von Xcode und xcodebuild erstellt werden.

David Hunt
quelle
3
Dies geschieht auch, wenn Sie versuchen, sie von der Konsole aus auszuführen, während das Projekt geöffnet ist.
Ich wurde
@iwasrobbed hat meinen Tag gerettet! Dies könnte eher eine der Antworten als ein Kommentar sein
anoo_radha
Ich hatte das Testschema hinzugefügt, aber "Test" wurde nicht überprüft. Überprüfen, dass funktioniert hat,
drees
Wie öffne ich dieses Menü?
Bogdan Bogdanov
@BogdanBogdanov Klicken Sie in der oberen linken Ecke von Xcode rechts neben der Schaltfläche "Stopp" auf Ihr Schema und dann auf "Schema bearbeiten ...".
David Hunt
33

Für alle, die mit diesem Problem zu kämpfen haben.

Meine Lösung war:

  1. Wählen Sie Testziel
  2. Schema verwalten
  3. Wählen Sie im linken Menü Ausführen
  4. Wählen Sie auf der Registerkarte Info
  5. Wählen Sie im Dropdown-Menü die Option Ausführbares Ziel
  6. Klicken Sie auf Schließen .
Dan
quelle
18

Dies wurde behoben, indem doppelte Schemata aus Xcode entfernt wurden. Die Schemata können in Xcode über Produkt -> Schema -> Schemata verwalten hinzugefügt / entfernt / geteilt / bearbeitet werden .

danR
quelle
2
Vielen Dank! Dies war der Hinweis, den ich brauchte, und ich werde ein subtileres Szenario erwähnen, das mich traf: ein zweites Schema mit demselben Namen, das jedoch in ein abhängiges Projekt eingebettet ist. Es scheint, dass dies auch xcodebuild auslöst, da es das von einem abhängigen Projekt geerbte Schema begünstigen könnte.
Danielpunkass
2
So suchen Sie nach doppelten Schemata: xcodebuild -workspace path/to/workspace/file -listoder xcodebuild -project path/to/project/file -list. Doppelte Schemata können Reste früherer Versionen des Arbeitsbereichs sein, sodass Sie git cleanmöglicherweise nur ein einfaches Schema benötigen.
Ohad Schneider
3
  • Sie sollten Ihre Arbeitsbereichsdaten in Jenkins überprüfen und feststellen, welche * .xctest bereits hochgeladen wurde. Dann müssen Sie Ihr UI / Unit-Testziel in die * .xctest-Daten in Ihrem xcode-Projekt umbenennen, wie Sie es auf Jenkins haben, und dann erneut drücken.
  • ODER löschen Sie Ihren Arbeitsbereich von Jenkins und übertragen Sie alle Daten erneut mit dem neuen UI / Unit-Testziel.

(Natürlich müssen Sie sicherstellen, dass Sie bereits ein Projektschema erstellt haben.)

MiladTai
quelle
1

Führen Sie die folgenden Schritte aus, um diesen Fehler zu beheben.

  1. Wählen Sie oben Ihr Projektschema aus.
  2. Klicken Sie auf Schemata verwalten .
  3. Wählen Sie Ihr Testziel im Popup.
  4. Stellen Sie sicher, dass Sie unten links im Popup auf die Schaltfläche Bearbeiten klicken .
  5. Wählen Sie Erstellen .
  6. Aktivieren Sie das Kontrollkästchen unter " Ausführen ".
  7. Schließen Sie das Popup.
Tarun Punhani
quelle
0

Mein Problem war, dass die Tests.swiftDatei ein Modul importierte, das nicht mehr existierte (ich habe die Ziele für das Projekt umbenannt). Stellen Sie sicher, dass alle Testdateien aktuell vorhandene Module importieren.

KVISH
quelle
-1

Ihr Testplan sollte mindestens eine benutzerdefinierte Konfiguration haben.

Aleksey Tsyss
quelle