我在 CI/CD 提供商(如 CircleCI)上运行 UI 测试,我需要读取多个秘密环境变量(如测试用户名和密码)。我可以轻松设置它,但我不明白如何将它们正确地传递给测试用例。
我找到了两种方法:
我使用fastlane,但没有找到任何相关信息。
如何正确地做到这一点?
从 Xcode 7 开始,环境变量不再传递到测试二进制文件。
但是,您可以将环境变量作为构建设置传递,然后使用 Xcode 测试方案配置将其重新定义为用于测试调用的环境变量。
例如,假设您定义了一个名为
YOUR_SECRET_ENV_VAR
的环境变量,将其作为构建设置从命令行传递给 Xcode:
xcrun xcodebuild test
-workspace your-app.xcworkspace
-scheme your-app
-destination 'platform=iOS,name=iPhone'
YOUR_SECRET_BUILD_VAR=$YOUR_SECRET_ENV_VAR
然后,将此构建设置作为测试调用的环境变量输入到您的方案配置中。您必须取消选中
User the Run action's arguments and environment variables
。
最后,在测试代码中使用环境变量,使用:
let yourSecret = ProcessInfo.processInfo.environment["YOUR_SECRET_ENV_VAR"]