2015-08-28 16 views
28

Ok, ich konnte diesen Test bisher noch nicht in Betas ausführen. Einige der Probleme, denen ich begegnet bin, sind here und here'NSInternalInconsistencyException' beim Ausführen von UITesting mit Xcode 7

Jetzt fühle ich mich wie etwas fehlt.

Hier ist meine bisherigen Fortschritte

  1. Aktiviert „UI-Tests“ Option, während ein neues Projekt anlegen. Dies fügt tatsächlich ein Ziel für mich hinzu. Also sollte ich gut gehen - zumindest dachte ich. enter image description here
  2. Die schnelle Datei unter UI-Tests hatte bereits "XCTest" importiert und war eine Unterklasse von "XCTestCase".
  3. setup() startet die Anwendung XCUIApplication(). Start()
  4. Und ich fügte der folgenden (durch die Record-Taste schlagen) enter image description here

Und dann lief ich diesen Test.

Die ganze Sache nicht schon vor dem Test genannt wird, direkt nach der Anwendung im Setup starten() mit den folgenden

*** Assertion failure in -[XCUIApplication init], /Library/Caches/com.apple.xbs/Sources/XCTest_Sim/XCTest-8170.3/XCTestFramework/UI Testing/XCUIApplication.m:76 /Users/UserName/Documents/Projects/Testing/UiTesting/UITestingApp/UITestingApp.swift:0: error: -[UITestingApp.UITestingApp testSimpleTap] : failed: caught "NSInternalInconsistencyException", "No target application path specified via test configuration:
testBundleURL:file:///Users/UserName/Library/Developer/CoreSimulator/Devices/E3201DC2-CAD3-48C3-95F5-15E18DCA1836/data/Containers/Bundle/Application/8B33FC59-FC03-41F8-BD21-43D81BA2D355/UITestingApp-Runner.app/PlugIns/UITestingApp.xctest/
productModuleName:(null) testsToSkip:(null) testsToRun:(null) reportResultsToIDE:no sessionIdentifier:<__NSConcreteUUID 0x7f93e146c0b0> F242796B-ED26-4AA7-861A-540D2D93CB8F pathToXcodeReportingSocket:(null) disablePerformanceMetrics:no treatMissingBaselinesAsFailures:no baselineFileURL:(null) targetApplicationPath:(null) targetApplicationBundleID:(null) reportActivities:no

Wer in diesen läuft oder hat auf irgendwelche Vorschläge, was ich fehlen könnte?

Hinweis: Ich habe die „Zielanwendung“ des UI-Testing Ziel meiner App

Update Set: Ich habe bemerkt, dies gilt für alle Beta/Abschluss Versionen von Xcode - aktualisiert Titel entsprechend

+0

Ich habe nur versucht, XCUIApplication in 'setUp()' Methode zu initialisieren und bekam das gleiche Problem. – Ducky

+0

Ich bekomme den gleichen Absturz mit Xcode 7 – SuPotter

+0

Ich sah viele Blogs schreiben über UI-Test mit XCTest aber nicht von Beispielcode funktionieren wie erwartet. Warum? LoL – Ducky

Antwort

3

Nach endlose Optimierungen, änderte die Position der abgeleiteten Daten in "Xcode Preferences" von "Legacy" zu "Custom" und brachte es zum Laufen!

enter image description here

+2

Warum der Downvote? – SuPotter

+4

Doing this behebt das Problem nicht für mich :( – DonnaLea

+0

Ich würde hier downvote, aber wie ich Punkte dafür verliere ich werde es nicht tun. Dies ist nicht die Antwort. –

28

Ich hatte ein ähnliches Problem und mein Fehler versucht UI Testcode in einem regelmäßigen Testziel zu verwenden. Sobald ich ein neues Ziel erstellt habe, angefangen mit "iOS UI Testing Bundle" und den Code dorthin kopiert habe, ging der Fehler weg. Hier ist der Faden, den ich in der richtigen Richtung: https://twitter.com/punksomething/status/609505357132500993 „Ja, ich hat versucht, einen UI-Test in einem regelmäßigen Testziel verwenden Sie habe ein neu hinzugefügte UI Testziel zu schaffen“

+0

Ja, ich sah diesen Beitrag. Ich hatte das richtige Ziel zu beginnen mit. Danke – SuPotter

+1

Dieses sollte die richtige Antwort sein. –

3

Ich hatte genau dieses Problem . Ich denke, dass das Problem darin bestand, ein Ziel auf dem Weg umzubenennen. Keine der Korrekturen hier half mir bei meinem Problem. Da ich gerade erst begonnen hatte und noch keine Tests geschrieben hatte, löschte ich das gesamte Ziel für die UI-Tests und fügte es wieder hinzu. Derselbe Name und alles hat gut funktioniert.

Wenn Sie auf dieses Problem stoßen, ist es möglicherweise aufgrund der Benennung. Sie können es auf diese Weise nachverfolgen oder Ihre Tests speichern und ein UI-Ziel erneut hinzufügen.

12

Dies ist mir passiert, als ich versuchte, eine neue Klasse zu meinem Unit-Test-Ziel hinzuzufügen, aber ich habe UI Test Case Class Vorlage statt Unit Test Case Class Vorlage gewählt.

Stellen Sie sicher, dass Sie immer die richtige auswählen.Obwohl beide XCTestCase-Unterklassen sind und Sie sie dem richtigen Ziel zuweisen, wird dieser Fehler bei der Auswahl der falschen Vorlage ausgelöst.

enter image description here

+0

Aha! Diese Antwort ist wirklich hilfreich, das ist einer jener Fälle, in denen Sie den ganzen Tag suchen und keine Reparatur finden konnten, nur durch das Betrachten der Datei dort "Ich habe nicht gezeigt, dass irgendetwas falsch ist. – Dallas

+0

Ich stieß buchstäblich auf das gleiche Problem. Der Vergleich der Vorlagen war ein guter Hinweis. Danke. – DevAndArtist

4

bekam ich das nach meinem Ziel umbenennen. Die Lösung bestand darin, die 'Zielanwendung' in meinem UITest-Ziel und Hit Build auf 'None' zu setzen. Danach habe ich 'None' zurück auf meine App gesetzt und der Fehler behoben. Ich denke, es ist sehr gut möglich, dass das Umbenennen die Zielanwendung des ui-Testziels durcheinander brachte.

+0

Vielen Dank! Ich habe das gleiche Problem nach der Umbenennung des gesamten Projekts. – Kris

+0

Ich musste ' Target Application 'auf' None 'und hit build. Dann musste ich' Target Application't wieder auf mein Projekt setzen. Thx! –

2

Ich bekam diesen Fehler, nachdem ich ein paar Tests geschrieben und ausgeführt habe. Ich habe alle Korrekturen und Vorschläge ausprobiert, aber keiner von ihnen hat für mich funktioniert.

Ich beschloss, die XCUI-App zu löschen, die erstellt wird, wenn Sie Tests ausführen und mein Gerät neu starten, und es hat funktioniert. wenn ich die tests 7 oder 8 mal danach ausführe, kommt der fehler zurück und ich wiederhole einfach den lösungszyklus. Wenn Sie die App einfach löschen und nicht neu starten, funktioniert sie nicht.

Nicht sicher, ob diese Antwort für jeden funktioniert, aber das ist, was für mich arbeitete.

4

Ich erhalte die Behauptung

*** Assertion failure in -[XCUIApplication init], /Library/Caches/com.apple.xbs/Sources/XCTest_Sim/XCTest-8170.3/XCTestFramework/UI Testing/XCUIApplication.m:76

regelmäßig, so wie auch in anderen Antworten beschrieben. Wirklich nervig, und ich brauchte einige Zeit, um die minimalen Schritte zu finden, um es loszuwerden.

Die Schlüssellösung, die ich gefunden habe, besteht darin, Ihr Gerät neu zu starten. Sie müssen also die App nicht entfernen, Xcode oder etwas anderes neu starten, nur ein Neustart sollte diese Behauptung verschwinden lassen.

+0

Das hat meinen Tag gerettet. Der Test-Daemon auf dem Gerät scheint nicht sehr stabil zu sein. – Leo

+0

@Leo tatsächlich reagiert der Daemon nicht. Ich habe sogar versucht, den Cache auf dem Handy ohne Neustart zu öffnen und das hat es nicht gelöst. Neustart funktioniert für mich, albern aber effektive Lösung. Vielen Dank. – JJacquet

0

hatte ich dieses Problem Cucumberish Tests auf xCode läuft 8.

I, indem Sie Projekt festgelegt (im Projektnavigator)> MyTestTarget> Allgemein

Hier stellen Sie sicher, dass die Zielanwendung auf die Anwendung eingestellt ist Sie möchte die Tests gegen ausführen. Standardmäßig wurde es auf Keine festgelegt.

1

Er arbeitete für mich, nachdem ich im Setup den Code unten Kommentar() -Methode meiner TestCaseClass

continueAfterFailure = false & XCUIApplication(). Start()

0

Löschen des vorhandenen Ziel und Erstellen wieder Korrekturen das Problem.

Stellen Sie sicher, dass Sie das richtige Testpaket auswählen. Für UI-Tests sollte es "iOS Unit Testing Bundle" sein.

-1
  1. New erstellen Datei UI Testfall und Einheit Testfall-Vorlagen sind nicht viel anders, (Die ersten beiden Zeilen Code), Select Unit Test im Test fragt „Anwendung nicht läuft“, Hinzufügen „XCUIApplication () .launch() "kann das Problem lösen.
  2. Wenn der Test aufgefordert, kein Steuerelement zu finden (E.g UITextField), stellen Sie bitte die Steuername \ Identität -> Zugänglichkeit -> Label-\ auf den gleichen Namen wie die in der UITestClass verwendeten Steuer
  3. Sie nicht die Testklasse auf die entsprechenden UI Ziele hinzugefügt haben
..
Verwandte Themen