首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xcode 7.3中的launchArguments在UITesting中不起作用

Xcode 7.3中的launchArguments在UITesting中不起作用
EN

Stack Overflow用户
提问于 2016-04-12 07:45:25
回答 2查看 2.1K关注 0票数 5

我一直在用Xcode 7.3编写UI测试,最近我想添加一个启动参数,以便在应用程序中启用一些测试代码。我最初尝试设置XCUIApplication().launchArguments,就像几个人在不同的帖子中所做的那样,但是他们无法工作。

仔细研究一下,launchArgumentslaunchEnvironment似乎都不能在UI测试中设置,尽管API文档说它们可以。

此外,当我试图在UI测试方案中设置启动参数和环境变量时,它们也不会传递到应用程序,就像在单元测试或运行应用程序时一样。

这是一个快速测试的副本,为了证明这一点,所有这些测试都失败了。

代码语言:javascript
复制
import XCTest

class LaunchDebugUITests: XCTestCase {

    func testLaunchArgumentsSetting() {
        XCUIApplication().launchArguments = ["abc"]
        print("Arguments \(XCUIApplication().launchArguments)")
        XCTAssertTrue(XCUIApplication().launchArguments.contains("abc"))
    }

    func testLaunchArgumentsAppending() {
        XCUIApplication().launchArguments.append("abc")
        print("Arguments \(XCUIApplication().launchArguments)")
        XCTAssertTrue(XCUIApplication().launchArguments.contains("abc"))
    }

    func testLaunchEnvironmentSetting() {
        XCUIApplication().launchEnvironment = ["abc":"def"]
        print("Environment \(XCUIApplication().launchEnvironment)")
        XCTAssertEqual("def", XCUIApplication().launchEnvironment["abc"])
    }

    func testLaunchEnvironmentAppending() {
        XCUIApplication().launchEnvironment["abc"] = "def"
        print("Environment \(XCUIApplication().launchEnvironment)")
        XCTAssertEqual("def", XCUIApplication().launchEnvironment["abc"])
    }

} 

还有其他人遇到过这个吗?你周围有工作吗?

EN

Stack Overflow用户

发布于 2016-04-14 07:42:12

苹果回复我,告诉我我使用XCUIApplication()不正确。

您不应该多次调用 XCUIApplication()

我读过的许多博客都多次打过这个电话,而且在大多数情况下都不重要。事实上,许多博客文章都把这个功能当作是访问一个单独的人。我有一种感觉,这是不正确的,因为它看起来不对,但我认为其他人会得到正确的。

但事实并非如此,它不是访问单个实例,而是在每次调用时实际创建一个新的XCUIApplication实例。因此我的代码失败了,因为我在一个实例上设置了启动参数,然后创建了另一个要启动的实例。

所以我的测试应该是这样的:

代码语言:javascript
复制
func testLaunchArgumentsSetting() {
    let app = XCUIApplication()
    app.launchArguments = ["abc"]
    print("Arguments \(app.launchArguments)")
    XCTAssertTrue(app.launchArguments.contains("abc"))
    app.launch()
}
票数 17
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36566774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档