使用Node.js在应用程序引擎上进行本地单元测试

Local unit testing on app engine with Node.js

本文关键字:单元测试 引擎 Node js 应用程序 使用      更新时间:2023-09-26

我们正在谷歌应用引擎上用node.js启动一个新的应用程序。我们还决定使用云数据存储。

我发现在其他可用的语言中,你可以进行本地单元测试:

https://cloud.google.com/appengine/docs/java/tools/localunittesting

我还没有找到node.js可用的东西。你知道是否有类似上面的链接吗?如果没有,我们可能会改用Java或Go。

谢谢!

编辑:我刚刚找到这个

https://cloud.google.com/datastore/docs/tools/datastore-emulator

有人试过并知道这是否能解决我的问题吗?

您所看到的不同之处在于App Engine Standard与App Engine Flexible(以前称为托管虚拟机)。NodeJS仅在App Engine Flexible上受支持。

应用程序引擎标准有一些优势(部署时间更快,能够"扩展到零",因此您无需为空闲应用程序付费),但它的灵活性要低得多,因为许多库在运行时不可用,因此您更依赖应用程序引擎API。为了提供一种在本地测试它的方法,提供了本地开发服务器。

Standard支持Python、Java、Go和PHP。然而,即使使用这些语言,如果您想使用Java8、Python3或imagemagik等自定义库,您仍然可以选择Flexible。

App Engine Flexible是一款非常不同的产品,尽管从表面上看它很相似,因为它有相似的工具和配置,而且它们都是可扩展的平台即服务产品。但这个概念是,你带上你熟悉的任何环境,它在一个容器中运行它(这对你来说是隐藏的。除非你使用自定义运行时为它构建自己的Docker运行时)。

由于您将标准开发环境引入应用程序引擎,因此您可以像测试任何其他Node应用程序一样测试Node应用程序,并像在本地运行其他本地Node项目一样运行它。从设计上讲,App Engine灵活的环境不应该有太多特殊之处,因此不需要专门的本地测试服务器。

然而,如果您使用的是云数据存储,则会提供模拟器,这样您就可以更快地运行测试,而无需支付任何费用。因此,模拟器肯定是您想要做本地单元测试的。如果您对它有任何问题,您应该在Stack Overflow上提出更多问题。

如果你还没有看到,有一个节点入门应用程序使用app Engine Flexible,并使用云数据存储、MongoDB和CloudSQL(托管MySQL)演示了各种任务。

https://github.com/googlecloudplatform/nodejs-getting-started