environment-variables - 如何从 XCUITest 代码访问 xcconfig 变量

标签 environment-variables ui-testing xcuitest xcconfig

我需要访问一个名为 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 中的工作方式而无法实现?

最佳答案

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

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

基本上: 应用目标.xcconfig: ENV=appenv

测试目标.xcconfig: #include apptarget.xcconfig

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

XCConfig 在构建时使用。 $(ENV) 必须在构建时扩展到您想要的值。您将通过使用 apptarget.xcconfig 作为测试目标的 xcconfig 或将其包含到您的 testarget.xcconfig 中来实现这一点

关于environment-variables - 如何从 XCUITest 代码访问 xcconfig 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62605104/

相关文章:

linux - 如何在 crontab 中正确设置 perl 脚本的环境变量?脚本正在使用解决方法执行

Xcode 预处理器依赖于环境变量

ios - AppCenter 设备测试 - 测试用例方法失败

ios - 如何暂停 XCUITest 以进行手动模拟器操作?

ios - XCUITest-无法合成事件:无法计算Button的击中点

tomcat - systemd 的环境派生用户

python - 如何在 python 中读取 %ERRORLEVEL% 环境变量

ios - 如何访问 XCUIApplication 中设置的 launchEnvironment 和 launchArguments,在 XCode 中运行 UI 测试?

java - UI 测试 - 对排序数据进行断言 (Katalon/Selenium) Java

c# - 程序定义了多个入口点? CS0017 main() 有问题?