我的笔记本电脑上有一个本地安装的 MySQL 服务器,我想将其中的信息用于单元测试,所以我想创建一个脚本来自动生成所有数据。我正在使用已经生成表(从模型)的 MySQL Workbench。是否可以使用它或其他工具来创建自动脚本来填充数据?
编辑: 我现在看到我不清楚。我确实有用于单元测试的有意义的数据。当我说“自动生成所有数据”时,我的意思是该工具应该获取我今天在本地数据库中拥有的有意义的数据,并创建一个脚本来在其他开发人员的数据库中生成相同的数据。
我的笔记本电脑上有一个本地安装的 MySQL 服务器,我想将其中的信息用于单元测试,所以我想创建一个脚本来自动生成所有数据。我正在使用已经生成表(从模型)的 MySQL Workbench。是否可以使用它或其他工具来创建自动脚本来填充数据?
编辑: 我现在看到我不清楚。我确实有用于单元测试的有意义的数据。当我说“自动生成所有数据”时,我的意思是该工具应该获取我今天在本地数据库中拥有的有意义的数据,并创建一个脚本来在其他开发人员的数据库中生成相同的数据。
最有用的单元测试是那些反映您期望或在实践中看到的数据的测试。用随机位填充您的模式并不能替代精心设计的测试数据。正如@McWafflestix 建议的那样 mysqldump 是一个有用的工具,但如果您想要更简单的东西,请考虑将LOAD DATA 与 INFILE 一起使用,它会从 CSV 填充表。
其他一些需要考虑的事情:
更新
如果您在 Java 环境中,dbUnit 是一个很好的解决方案:
您可以填充默认值(如果已定义)
CREATE TABLE #t(c1 int DEFAULT 0,c2 varchar(10) DEFAULT '-')
GO
--This insert 50 rows in table
INSERT INTO #t( c1, c2 )
DEFAULT VALUES
GO 50
SELECT * FROM #t
DROP TABLE #t