运行 CI 依赖于 firestore 模拟器的测试
Running CI tests that rely on firestore emulator
我可以在 firestore 模拟器上本地 运行 进行一些安全测试。该过程如下所示:
在终端选项卡 1 中,启动模拟器:
firebase emulators:start --only firestore
在终端选项卡 2 中,运行 测试
yarn test rules
我想 运行 这些测试作为 CI 的 GitHub 操作。目前看起来像这样:
- name: Test Security Rules
run: |
firebase emulators:start --only firestore
yarn test rules
问题是模拟器没有启动 return 所以它挂起并最终超时。
emulators: All emulators started, it is now safe to connect.
我希望了解如何启动模拟器,知道它何时准备就绪(或等待 N 秒),运行 测试,然后(可选)关闭进程。
请阅读documentation for starting the Firebase emulators。您将要使用 emulators:exec <scriptpath>
参数:
Run the script at scriptpath after starting emulators for the Firebase products configured in firebase.json. Emulator processes will automatically stop when the script has finished running.
如果您将命令的名称传递给 运行,CLI 将 运行 准备就绪后为您执行该命令,然后在脚本完成后结束进程。
我可以在 firestore 模拟器上本地 运行 进行一些安全测试。该过程如下所示:
在终端选项卡 1 中,启动模拟器:
firebase emulators:start --only firestore
在终端选项卡 2 中,运行 测试
yarn test rules
我想 运行 这些测试作为 CI 的 GitHub 操作。目前看起来像这样:
- name: Test Security Rules
run: |
firebase emulators:start --only firestore
yarn test rules
问题是模拟器没有启动 return 所以它挂起并最终超时。
emulators: All emulators started, it is now safe to connect.
我希望了解如何启动模拟器,知道它何时准备就绪(或等待 N 秒),运行 测试,然后(可选)关闭进程。
请阅读documentation for starting the Firebase emulators。您将要使用 emulators:exec <scriptpath>
参数:
Run the script at scriptpath after starting emulators for the Firebase products configured in firebase.json. Emulator processes will automatically stop when the script has finished running.
如果您将命令的名称传递给 运行,CLI 将 运行 准备就绪后为您执行该命令,然后在脚本完成后结束进程。