0
我有一个奇怪的错误。我启动一个PHP单元测试套件。在开始时,它执行一个大的查询来初始化数据库。一个奇怪的bug,是Mysql异步吗?
如果我在执行sql后放置一个断点,没有问题,我的测试通过。
如果我没有放置任何断点,他们不会通过并且说表格不存在!
它的工作原理就好像sql查询是异步的!
你有这个错误的想法吗?或者如何调试?
我有一个奇怪的错误。我启动一个PHP单元测试套件。在开始时,它执行一个大的查询来初始化数据库。一个奇怪的bug,是Mysql异步吗?
如果我在执行sql后放置一个断点,没有问题,我的测试通过。
如果我没有放置任何断点,他们不会通过并且说表格不存在!
它的工作原理就好像sql查询是异步的!
你有这个错误的想法吗?或者如何调试?
要进行调试,您需要查看查询日志 - 特别是数据加载完成点附近的事件序列,并开始第一个单元测试。有一个数据库从某处偷偷进入?
查询日志切换使用在配置文件中的设置:
MySQL Manual - 5.1.2 Server Command Options
您可以从MySQL命令行工具内再次切换日志和关闭,但该文件将其写入需要在配置文件中配置并重新启动服务器。
我在使用副本的测试环境中遇到过类似的问题 - 我最终发现我正在写信给主服务器并从副本读取数据。有时候,如果复制足够快,一些测试就会通过。小心你的测试正在做你认为他们正在做的事。
也可以尝试使用交易。更多信息在这里 - http://dev.mysql.com/doc/refman/5.1/en/sql-syntax-transactions.html – dmp 2010-03-09 17:49:40