Xcode UI测试环境变量未从Scheme传递

时间:2018-01-11 02:42:38

标签: ios xcode xcode-ui-testing

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

但是,我能够以编程方式在测试代码中设置参数和launchEnvironment,并且这些参数在测试运行时可供应用程序使用。

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

要查看args和env vars的值,我在applicationDidFinishLaunchingpo ProcessInfo.processInfo.environmentpo ProcessInfo.processInfo.arguments设置了断点。

我在这里设置错误吗?

enter image description here

1 个答案:

答案 0 :(得分:17)

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

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

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