javascript - 使用 Node.js 对应用程序引擎进行本地单元测试

标签 javascript node.js unit-testing google-app-engine

我们正在使用 node.js 在 Google App Engine 上启动一个新应用。我们还决定使用云数据存储。

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

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

我还没有找到任何可用于 Node.js 的内容。您知道是否有类似上面链接的内容吗?如果没有,我们可能会改用 Java 或 Go。

谢谢!

编辑:我刚刚发现这个

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

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

最佳答案

您所看到的差异在于 App Engine 标准版与 App Engine 灵活版(以前称为托管虚拟机)。 NodeJS 仅在 App Engine Flexible 上受支持。

App Engine Standard 有一些优点(更快的部署时间、“扩展到零”的能力,因此您无需为空闲应用程序支付任何费用),但它的灵 active 要差得多,因为许多库在运行时不可用,因此您需要更多依赖严重依赖 App Engine API。为了提供本地测试的方法,提供了本地开发服务器。

标准支持 Python、Java、Go 和 PHP。但是,即使使用这些语言,如果您想要执行诸如使用 Java 8、Python 3 或 imagemagick 之类的自定义库之类的操作,您仍然可以选择“灵活”。

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

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

但是,如果您使用 Cloud Datastore,则会提供模拟器,以便您可以更快地运行测试,而无需支付任何费用。因此,模拟器绝对是您进行本地单元测试所需的工具。如果您有任何问题或疑问,您应该在 Stack Overflow 上提出更多问题。

如果您还没有看过,这里有一个 Node 入门应用程序,它使用 App EngineFlexible,并演示了使用 Cloud Datastore 以及 MongoDB 和 CloudSQL(托管 MySQL)的各种任务。

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

关于javascript - 使用 Node.js 对应用程序引擎进行本地单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37183032/

相关文章:

javascript - 在 Javascript 中获取和设置 map 中的值

javascript - 如何放大 iframe 中的文本?

mysql - 无法从 node.js 服务器连接到本地主机数据库

unit-testing - 在BigDecimal列表上Grails GORM唯一约束

JavaScript - 对从 Container 中移除元素非常困惑

javascript - 仅单击元素的选项卡更改,并非所有元素都具有相同的类

java - 在调试中保存对象,而不是在测试中将其用作 stub

angularjs - Jasmine 。 angular.service 。 Angular promise 。怎样才能让他们一起玩呢?

javascript - node_modules 包如何读取项目根目录下的配置文件?

node.js - 在 Node js中使用私钥连接ssh服务器