【问题标题】:XCTestCase not launching application in setUp class methodXCTestCase 未在 setUp 类方法中启动应用程序
【发布时间】:2023-03-06 01:10:02
【问题描述】:

我正在使用 XCode 8 和 XCTestCase。我创建了一个类 setUp 函数,在所有测试之前运行一次,另一个 setUp 在每个测试用例之前运行。

我希望应用程序在所有测试用例之前启动一次。如果我在类 setUp 中使用启动,它永远不会被执行。如果我在每次测试之前运行的 setUp 中使用启动,它会启动测试。

打印出来:

课堂设置

结束类设置

在设置中

测试方法

但应用程序永远不会启动。如果我取消注释在第二个设置中启动应用程序的行,它将启动。

如何在我的测试类中的所有测试之前启动应用程序一次?

【问题讨论】:

    标签: xcode xctest xcode-ui-testing ios-ui-automation xctestcase


    【解决方案1】:

    我遇到了同样的问题并通过以下方式解决了它

    class MyTestCase: XCTestCase {
    
        static var app: XCUIApplication?
    
        override func setUp() {
            super.setUp()
    
            if MyTestCase.app == nil {
                MyTestCase.app = XCUIApplication()
                MyTestCase.app!.launch()
            }
        }
    
        // Tests...
    }
    

    这只会在第一次调用setUp 方法时启动应用程序。

    【讨论】:

    • 谢谢!这种解决方法对我有用。仍然很好奇为什么它在苹果为整体设置提供的类函数中不起作用。但这将工作到那时!非常感谢!
    • 我了解到与 XCUIApplication 的交互不会在类方法中起作用,我认为这可能是 Xcode UI 测试工作方式的限制。
    • 这真的很糟糕。 Apple 的 XCUITest 基本上没有做它应该允许的事情:developer.apple.com/documentation/xctest/xctestcase/…
    猜你喜欢
    • 1970-01-01
    • 2014-01-29
    • 2017-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多