Xcode UI Test environment variables not being passed from Scheme

a 夏天 提交于 2020-11-29 04:23:58

问题


In Xcode 9.2, for my iOS app, I have a Scheme for running my UI Test suite. In this scheme, under the "Test" tab, I have both environment variables and arguments defined. When my tests run, these variables aren't available to my app code.

However, I am able to programmatically set both the arguments and the launchEnvironment in the test code, and those ones are available to the app while it's running under test.

I also have environment variables and arguments set in the "Run" tab, and those are available when I merely run the app in the simulator. They are not available when I run my UI tests, regardless of whether I have "Use the Run action's arguments and environment variables" toggled on.

To see the values of the args and env vars, I have a breakpoint set in my applicationDidFinishLaunching, and I po ProcessInfo.processInfo.environment and po ProcessInfo.processInfo.arguments.

Am I setting something incorrectly here?


回答1:


Launch arguments and launch environments provided in the scheme editor are passed only to UI test runner. You can read those values only in UI test classes.

If you want to pass those values to the application itself you have to do it in the code:

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


来源:https://stackoverflow.com/questions/48199055/xcode-ui-test-environment-variables-not-being-passed-from-scheme

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!