如何为CI创建Firebase测试环境?

如何为CI创建Firebase测试环境?,firebase,testing,google-cloud-firestore,Firebase,Testing,Google Cloud Firestore,我想对我的Firebase/Firestore应用程序运行一些浏览器测试。它们将在CI中运行,因此我希望它们在不会相互冲突的单独环境中运行 如果我编写自己的后端,这将很容易:我只需运行本地后端和数据库。然而 一个可能的解决方案是为每个测试运行以编程方式创建Firebase项目,但这似乎是不可能的。类似地,每个测试都可以在自己的命名空间中运行 为Firebase/Firestore应用程序创建测试环境的最佳做法是什么?我建议使用与live project相同的设置创建一个单独的Firebase项目

我想对我的Firebase/Firestore应用程序运行一些浏览器测试。它们将在CI中运行,因此我希望它们在不会相互冲突的单独环境中运行

如果我编写自己的后端,这将很容易:我只需运行本地后端和数据库。然而

一个可能的解决方案是为每个测试运行以编程方式创建Firebase项目,但这似乎是不可能的。类似地,每个测试都可以在自己的命名空间中运行


为Firebase/Firestore应用程序创建测试环境的最佳做法是什么?

我建议使用与live project相同的设置创建一个单独的Firebase项目,并在那里运行测试。我做过这个,效果很好。此解决方案使您能够在Firestone中拥有独立于现场/生产的测试数据。

更新:Firebase团队最近发布了:

Firebase管理API支持Firebase项目的编程设置和管理,包括项目的Firebase资源和Firebase应用程序


我还没有机会测试它,但从理论上讲,它非常适合作为任何CI/CD设置的一部分,按需以编程方式设置和处理环境。

测试是否需要并行运行,以便每次都需要以编程方式创建项目?如果没有,只需为测试指定一个项目,并在每次测试运行之前重置它。不幸的是,如果两个测试需要并行运行,那么这将不起作用。如果您可以编写不会与另一组正在运行的测试(例如,使用随机名称)发生冲突的测试,那么这种技术将有一定的作用,但是如果您想要测试一些新的安全规则或云功能,它将完全失效。