在nodejs中导入MySQL数据库进行集成测试的最简单方法

Posted

技术标签:

【中文标题】在nodejs中导入MySQL数据库进行集成测试的最简单方法【英文标题】:Easiest way to import MySQL database in nodejs for integration testing 【发布时间】:2013-04-06 15:29:20 【问题描述】:

我有一个使用 nodejs 构建的 Web 应用程序,我想对我的 API 进行一些集成测试,这将涉及访问实时数据库。

在运行我的测试之前,是否有任何简单的方法可以加载和执行 SQL 转储文件以预填充数据库?

【问题讨论】:

【参考方案1】:

您可以在需要时对您的 sql 查询进行分组,以便在任何拆卸或拆卸事件中恢复您的数据库。

在运行需要干净“数据结构”的测试之前,您可能希望使用任何类型的标志

【讨论】:

【参考方案2】:

要加载转储,在终端中:

mysql -u youruser -p yourdatabasename < /path/to/your/dump_file.sql

输入密码。

如果你想创建转储,在终端中:

mysqldump -u youruser -p yourdatabasename > /path/to/your/dump_file.sql

【讨论】:

是的,我倾向于从节点内部运行此命令。在我的测试过程中,我需要多次运行它来重置数据库。 那么您应该从 node.js 运行 bash 命令,深入研究:查看此链接 dzone.com/snippets/execute-unix-command-nodejs 不知道为什么你的测试应该重置数据库,为什么不根据脚本的需要创建表? 在测试组件时消除潜在的副作用总是一个好主意。在测试组件之前重置测试数据库将消除稍后创建的其他测试的潜在副作用,这些测试可能会在测试过程中修改数据库中的数据。 你能从终端执行你的测试吗?

以上是关于在nodejs中导入MySQL数据库进行集成测试的最简单方法的主要内容,如果未能解决你的问题,请参考以下文章

使用 NodeJs 在 Pdftron 中导入多个注释

使用 --create-hive-table 直接在 hive 中导入 mysql 表 (sqoop)

我无法在 iOS 5.1 中导入用于 Facebook 集成的标头

如何使用 ECMA 模块在 nodejs 中导入 .json 文件?

使用 es6 在 NodeJs 中导入 JSON 文件

无法在nodejs中导入带有require()的模块