【问题标题】:Xcode UI test - swipeRight() not working after tearDownXcode UI 测试 - 拆解后 swipeRight() 不起作用
【发布时间】: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(),行为会改变吗?

标签: swift xctest xcode-ui-testing xctestcase


【解决方案1】:

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

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

【讨论】:

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