代码之家  ›  专栏  ›  技术社区  ›  commanda

未从方案中传递Xcode UI测试环境变量

  •  12
  • commanda  · 技术社区  · 8 年前

    在Xcode 9.2中,对于我的iOS应用程序,我有一个运行UI测试套件的方案。在这个方案中,在“Test”选项卡下,我定义了环境变量和参数。当我的测试运行时,这些变量对我的应用程序代码不可用。

    然而,我能够通过编程在测试代码中设置参数和启动环境,并且这些参数和环境在应用程序运行测试时可用。

    我还在“运行”选项卡中设置了环境变量和参数,当我仅在模拟器中运行应用程序时,这些变量和参数就可用。无论是否启用了“使用运行操作的参数和环境变量”,它们在运行UI测试时都不可用。

    为了查看args和env变量的值,我在 applicationDidFinishLaunching ,而我 po ProcessInfo.processInfo.environment po ProcessInfo.processInfo.arguments .

    我是否在此处设置了错误的内容?

    enter image description here

    1 回复  |  直到 8 年前
        1
  •  29
  •   Bartosz Janda    8 年前

    方案编辑器中提供的启动参数和启动环境仅传递给UI测试运行程序。您只能在UI测试类中读取这些值。

    如果要将这些值传递给应用程序本身,必须在代码中执行:

    let app = XCUIApplication()
    app.launchArguments = ["amandaArgument"]
    app.launchEnvironment = ["AMANDA_UI_TESTING": "Value"]
    app.launch()