Amb*_*ber 8 mysql database testing fixtures
我有许多针对MySQL数据库运行的测试,该数据库预先加载了来自一组SQL文件的模式和示例数据.其中一些测试在运行期间也会在数据库中创建新数据.
通常,测试负责自行清理(因此不会污染数据库环境以进行其他测试).但是,似乎这些测试中的一些并没有完全这样做,因此在不应该的情况下留下额外/修改的记录.
由于正在测试的复杂代码集,在整个测试中运行单个事务是不可行的,所以我不能让MySQL回滚所有东西(有多个游标和多个复制的数据库服务器)涉及,以及其他因素).
我想有更容易识别这些测试被污染DB的方式,但由于它是允许的测试写入DB(只要他们删除的东西后),我不能只是看所有对DB的更改 - 我只需要有效的更改,删除了取消修改.
我有一个想法是,如果有一种简单的方法来比较一个表的内容与另一个表的内容,我可以在运行每个测试之后这样做,将使用fixture初始化的表的内容与测试后的表的内容进行比较.
到目前为止,我通过其他渠道得到的一些不同建议:
CHECKSUM TABLE- 这几乎可以完美满足我的需求,除了它仅适用于 MyISAM 表(我们使用 InnoDB)。
SHOW TABLE STATUS- 这提供了Data_length,这可能是一个简单的比较。如果我找不到更好的东西,这可能就足够了。
| 归档时间: |
|
| 查看次数: |
646 次 |
| 最近记录: |