2016-04-22 20 views
0

Ich habe eine Logout-Funktion, die während jeder tearDown() aufgerufen wird, funktioniert aber nicht, wenn auf diese Weise aufgerufen. Wenn ich während des Tests dieselbe Abmeldefunktion anrufe, funktioniert das problemlos. Ich frage mich, was sind die Verhaltensweisen der XCUI-Tests während des Teardowns, gibt es Einschränkungen? Ich habe versucht, das Debuggen und rufen app.swipeRight() mit dem LLDB (espression-> Code schreiben) ...Xcode UI Test - swipeRight() funktioniert nicht nach trissDown

------- 
Navbar.swift 
------- 
import XCTest 
import Foundation 

class NavbarTest: XCTestCaseLib{ 
    override func setUp() 
    { 
     super.setUp() 
     continueAfterFailure = false 
    } 
    override func tearDown() 
    { 
     logout() 
     super.tearDown() 
    } 

    func testSideBar_STAGING(){ 
    //...<test code that executes no problem> 
    //... 
    } 
} 



----- 
XCTestCaseLib.swift 
------ 
import XCTest 
import Foundation 

class XCTestCaseLib: XCTestCase { 
let app = XCUIApplication() 
func logout() { 
    app.swipeRight() 
    ... 
} 
+0

Sind Sie sicher, dass die 'tearDown()' Funktion ausgeführt wird? Fügen Sie eine Protokollanweisung hinzu, um sicher zu sein. Ändert sich das Verhalten auch, wenn Sie 'self.logout()' anstelle von 'logout()' aufrufen? – bneely

Antwort

0

Aus dem Code, den Sie geschrieben haben, wird es Ihre Importe sein (ich gehe davon hier dass diese Klassen in verschiedenen Dateien sind, sonst ist Ihre Vererbung mehrdeutig). Wenn ich falsch liege, aktualisieren Sie bitte Ihre Frage, um Ihre Dateistruktur einzuschließen. Spielen Sie mit Ihren Importen und Erbschaften herum.

Ich glaube, man muss nur import XCTest auf NavbarTest Klasse

+0

Hallo Danke, dass Sie sich die Zeit genommen haben, sich das anzuschauen. Ich habe die Antwort aktualisiert, um meine Importe und Dateinamen einzuschließen. Das war nicht das Problem. Es scheint heute, dass die Logout-Funktion funktioniert, wenn der Testfall vorzeitig beendet wird (fehlgeschlagen), aber wenn der Test abgeschlossen ist, wird der Teardown nicht richtig ausgeführt (ich meine, es wird ausgeführt, aber die Swipe-Funktion scheint nicht zu funktionieren). .super komisch – 1ak31sha

+0

Sie starten die App nicht in 'setup()', ist das beabsichtigt? – cakes88

+0

Ja, ich starte mit verschiedenen Startargumenten in jedem Test, also verwende ich kein Setup dafür. – 1ak31sha