gpt4 book ai didi

xcode - 将环境变量传递给 XCUITest

转载 作者:行者123 更新时间:2023-12-05 06:58:43 30 4
gpt4 key购买 nike

我在 CI/CD 提供程序(如 CircleCI)上运行 UI 测试,我需要读取多个 secret 环境变量(如测试用户名和密码)。我可以很容易地设置它,但我不明白如何将它们正确地传递给测试用例。

我找到了两种方法:

  1. 将其存储在共享方案中(在 XCode Arguments 中),这是一个坏主意,因为不应将 secret 存储在 git 存储库中。
  2. 通过 Swift/Obj-C/xconfig 文件中的文本替换注入(inject)变量(如小型 perl 脚本)。我认为这不是 2020 年的好方法。

我使用 faSTLane 但没有找到任何相关信息。

如何正确地做到这一点?

最佳答案

从 Xcode 7 开始,environment variables are no longer being passed on到测试二进制文件。

但是,您可以将环境变量作为build设置传递,然后使用 Xcode 测试方案配置将其重新定义为用于测试调用的环境变量。

例如,假设您定义了一个名为 YOUR_SECRET_ENV_VAR 的环境变量,将其作为build设置从命令行传递给 Xcode:

xcrun xcodebuild test
-workspace your-app.xcworkspace
-scheme your-app
-destination 'platform=iOS,name=iPhone'
YOUR_SECRET_BUILD_VAR=$YOUR_SECRET_ENV_VAR

然后,将此build设置作为测试调用的环境变量提供到您的方案配置中。您必须取消选中 User the Run action's arguments and environment variables

configuring environment variables in scheme settings in Xcode UI

最后,在您的测试代码中使用环境变量,使用:

let yourSecret = ProcessInfo.processInfo.environment["YOUR_SECRET_ENV_VAR"]

关于xcode - 将环境变量传递给 XCUITest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64546360/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com