如何在 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?

XCUITest 如何关闭日期选择器弹出框

如何通过 fastlane 在 Firebase 测试实验室中运行 XCUItest?

XCUITest - 打开 iOS 设置并更改日期/时间

XCUITest - 选定的单元格未显示在 iOS 15 的层次结构树中

用于 XCUITest 的 iOS 模拟器中的强制软件键盘