如何在 iOS XCUITest 期间配置 Firebase
Posted
技术标签:
【中文标题】如何在 iOS XCUITest 期间配置 Firebase【英文标题】:How to configure Firebase during iOS XCUITest 【发布时间】:2020-05-26 06:13:02 【问题描述】:我希望创建一个简单的 UI 测试,该测试通过应用程序的帐户创建,然后检查 firestore 以验证用户的数据是否正确。到目前为止,我已经完成了 UI 驱动。测试通过创建帐户来驱动应用程序,我可以手动验证数据是否正确。我现在的障碍是能够从测试文件配置 Firebase、Firestore 和 Firebase Auth。我没有像为应用程序本身那样配置它(FirebaseApp.configure()
指向 plist 配置文件),错误是它没有看到有效的 GoogleService-Info.plist 文件。另一个相关挑战是从测试文件访问身份验证,特别是获取当前登录的 uid,以便我可以在 Firestone 中找到用户的数据。有任何想法吗?谢谢
另外,就上下文而言,我想创建这些集成测试,以便它们能够通过 fastlane+github 组合作为我们 CI/CD 的一部分运行,尽管这不一定是这个问题的一部分。
【问题讨论】:
【参考方案1】:要将 Firebase 添加到您的 ios 项目,您必须遵循 documentation:
我假设您已经按照第 1 步和第 2 步创建了 Firebase 项目并在 Firebase 中注册了您的应用。
第 3 步:添加 Firebase 配置文件
1- 点击下载 GoogleService-Info.plist 以获取您的 Firebase iOS 配置文件 (GoogleService-Info.plist)。
2- 将您的配置文件移动到 Xcode 项目的根目录中。如果出现提示,请选择将配置文件添加到所有目标。
第 4 步:将 Firebase SDK 添加到您的应用中
1- 我们建议使用 CocoaPods 安装 Firebase 库。如果您还没有 Podfile,请创建一个:
cd your-project-directory
pod init
2- 在您的 Podfile 中,添加您要在应用中使用的 Firebase pod。
# Add the pods for the Firebase products you want to use in your app
# For example, to use Firebase Authentication, Cloud Firestore, and Realtime
pod 'Firebase/Auth'
pod 'Firebase/Firestore'
pod 'Firebase/Database'
3- 安装 pod,然后打开 .xcworkspace 文件以在 Xcode 中查看项目:
pod install
open your-project.xcworkspace
第 5 步:在您的应用中初始化 Firebase
1- 在 UIApplicationDelegate 中导入 Firebase 模块:
import Firebase
2- 配置 FirebaseApp 共享实例,通常在您应用的 application:didFinishLaunchingWithOptions:
方法中:
// Use Firebase library to configure APIs
FirebaseApp.configure()
【讨论】:
以上是关于如何在 iOS XCUITest 期间配置 Firebase的主要内容,如果未能解决你的问题,请参考以下文章
XCUITest - 如何在应用程序运行时禁用 Wi Fi?
如何通过 fastlane 在 Firebase 测试实验室中运行 XCUItest?