3

我需要访问一个名为 ENV 的环境变量,该变量在我的主应用程序目标的 xcconfig 文件中设置,但从我的 UI 测试目标内部。

在进行了大量的谷歌搜索之后,这是我尝试过的:

  • 将主 xcconfig 设置为 UITest 目标的配置
  • ENV=$(ENV)在测试计划配置中添加环境变量
  • 像这样打印环境字典
print(ProcessInfo.processInfo.environment)

$(ENV)并没有扩展到真正的价值。

我还尝试Info.plist在 UITest 目标中添加自定义条目

<key>ENV</key>
<string>$(ENV)</string>

然后通过访问它,Bundle.main.infoDictionary但我又得到了字符串$(ENV)。知道我缺少什么,或者这只是因为 UI 测试在 Xcode 中的工作方式而不可能吗?

4

1 回答 1

0

您需要做的是使用应用程序目标的 xcconfig 作为测试目标的构建配置。或者,如果您需要特定测试目标的构建配置,您可以将应用程序的 xcconfig 包含到您的测试目标 xcconfig 中。

然后在您的测试计划设置中,您将测试计划环境变量定义为 ENV=$(ENV)

基本上:apptarget.xcconfig: ENV=appenv

testtarget.xcconfig: #include apptarget.xcconfig

在您定义的 testPlan 环境中: ENV=$(ENV)

XCConfig 在构建期间使用。$(ENV) 必须在构建时扩展到您想要的值。您将通过使用 apptarget.xcconfig 作为测试目标的 xcconfig 或将其包含到您的 testarget.xcconfig 中来完成此操作

于 2021-12-08T18:46:38.007 回答