在Xcode 9.2中,对于我的iOS应用程序,我有一个用于运行UI测试套件的Scheme。在此方案中,在“测试”选项卡下,我定义了环境变量和参数。当我的测试运行时,我的应用程序代码无法使用这些变量。
但是,我能够以编程方式在测试代码中设置参数和launchEnvironment,并且这些参数在测试运行时可供应用程序使用。
我还在“运行”选项卡中设置了环境变量和参数,当我仅在模拟器中运行应用程序时,这些变量和参数可用。当我运行UI测试时,它们不可用,无论我是否有“使用运行操作的参数和环境变量”切换。
要查看args和env vars的值,我在applicationDidFinishLaunching
,po ProcessInfo.processInfo.environment
和po ProcessInfo.processInfo.arguments
设置了断点。
我在这里设置错误吗?
答案 0 :(得分:17)
方案编辑器中提供的启动参数和启动环境仅传递给UI测试运行器。您只能在UI测试类中读取这些值。
如果要将这些值传递给应用程序本身,则必须在代码中执行此操作:
let app = XCUIApplication()
app.launchArguments = ["amandaArgument"]
app.launchEnvironment = ["AMANDA_UI_TESTING": "Value"]
app.launch()