运行 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 将 运行 准备就绪后为您执行该命令,然后在脚本完成后结束进程。