我怎样才能编写一个需要操作mySQL数据库的testing模块?

我正在写一个nodejs npm模块,需要一个mySQL数据库来操作。

我想写一个连接到“假”数据库的testing模块,并对其进行一些操作。

我已经在我的开发机器中本地安装了我的testing数据库,但是我希望这个testing可以在任何机器上运行。

编写依赖于操作mySQL数据库的集成testing模块的最佳做法是什么?

是否存在networking中的任何公共服务,我可以得到一个临时的MySQL用户/密码,我可以在有限的时间/大小做一些操作?

通常你会build立一个持续集成(CI)系统,每当你改变你的版本控制系统就执行你的testing。 CI系统将提供一个干净的MySQL数据库,您的testing将运行。 如果您在云中使用CI系统,则通常可以将其configuration为提供数据库。 例如见Travis CI 。

如果你build立了一个CI系统,其他开发者如果想要执行testing,仍然需要在他们的计算机上运行他们自己的MySQL数据库。 或者,您可以在testing中使用模拟代替真实数据库。 有关详细信息,请参阅: 如何在Node.js中模拟MySQL(没有ORM)

然而,使用模拟不会给你足够的testing结果,因为模拟只是简单地模拟数据库。 有时候模拟可能太简单,或者只是越野车。 所以你至less需要对真实数据库运行一些testing。 因此,您可以select使用CI系统对真实数据库运行testing,并在开发过程中针对模拟运行testing。

不完全理解这个问题,我build议Amazon RDS进行短期testing,需要通过公共互联网访问某些内容。 如果用于任何实际stream量,amazon web services可以得到高昂的价格,但对于任何概念certificate来说,这仍然是一个很好的select