Xcode UI 测试 - 拆解后 swipeRight() 不起作用

Posted

技术标签:

【中文标题】Xcode UI 测试 - 拆解后 swipeRight() 不起作用【英文标题】:Xcode UI test - swipeRight() not working after tearDown 【发布时间】:2016-04-22 19:15:42 【问题描述】:

我有一个在每次tearDown() 期间都会调用的注销函数,但以这种方式调用时不起作用。如果我在测试期间调用相同的注销功能,它工作正常。我想知道在拆解期间 XCUI 测试的行为是什么,有限制吗?我尝试使用 lldb 调试和调用 app.swipeRight() (espression->write code)...

-------
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()
    ...

【问题讨论】:

您确定tearDown() 函数正在执行吗?在那里添加一个日志语句以确保。另外,如果您调用self.logout() 而不是logout(),行为会改变吗? 【参考方案1】:

从您发布的代码来看,它似乎是您的导入(我在这里假设这些类位于不同的文件中,否则您的继承是不明确的)。如果我弄错了,请更新您的问题以包含您的文件结构。玩转你的导入和继承。

我相信你只需要在你的NavbarTest 类上import XCTest

【讨论】:

您好,感谢您抽出宝贵时间查看此内容。我已经更新了答案以包括我的导入和文件名。这不是问题所在。今天看来,当测试用例提前结束(在某些时候失败)时,注销功能可以工作,但是如果测试完成,则拆解无法正确执行(我的意思是它执行,但滑动功能似乎无法工作).. .超级奇怪 您没有在setup() 中启动应用程序,这是有意的吗? 是的,我在每次测试中使用不同的启动参数启动,所以我不使用设置。

以上是关于Xcode UI 测试 - 拆解后 swipeRight() 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

想要在 Xcode 中的 UI 测试期间在测试运行后停止调试控制台清除

XCode 7 中的 UI 测试文档 [关闭]

Xcode 7 中的特定 UI 测试

在 Xcode UI 测试中编辑记录的元素

如何在 Xcode UI 测试中获得授权部分

Xcode 自动化 UI 测试日志内存使用情况