2016-04-22 54 views
0

我有一個註銷函數,在每個tearDown()期間被調用,但在以這種方式調用時不起作用。如果我在測試過程中調用相同的註銷功能,它可以正常工作。我想知道在拆解過程中XCUI測試有哪些行爲,是否有限制?我試着調試和使用LLDB(espression->寫代碼)調用app.swipeRight()...Xcode UI測試 - swipeRight()在tearDown後不工作

------- 
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

你確定了'拆解()'函數執行?在那裏添加一個日誌語句以確保。另外,如果您調用'self.logout()'而不是'logout()',行爲是否會改變? – bneely

回答

0

從您發佈的代碼,這似乎是你的進口(我假設在這裏這些類在不同的文件中,否則你的繼承是不明確的)。如果我錯了,請更新您的問題以包含您的文件結構。玩弄你的導入和繼承。

我相信,你只需要import XCTestNavbarTest

+0

嗨感謝您花時間看這個。我更新了答案,以包含我的導入和文件名。這不是問題。今天看來,註銷功能在測試用例提前結束(某些時候失敗)時起作用,但是如果測試完成,那麼拆卸將無法正確執行(我的意思是執行,但滑動功能似乎無法正常工作).. 。超級怪異 – 1ak31sha

+0

你不是在'setup()'中啓動應用程序,那是爲了什麼? – cakes88

+0

是的,我在每個測試中都會啓動不同的啓動參數,所以我不使用安裝程序。 – 1ak31sha