【发布时间】:2011-01-25 00:53:06
【问题描述】:
我有一个奇怪的错误。我启动了一个 PHP 单元测试套件。一开始,它会执行一个大查询来初始化数据库。
如果我在执行 sql 之后立即设置断点,则没有问题,我的测试通过了。
如果我不放任何断点,他们不会通过并说表不存在!
它就像 sql 查询是异步的一样工作!
你知道这个错误吗?或者如何调试?
【问题讨论】:
标签: php mysql debugging phpunit
我有一个奇怪的错误。我启动了一个 PHP 单元测试套件。一开始,它会执行一个大查询来初始化数据库。
如果我在执行 sql 之后立即设置断点,则没有问题,我的测试通过了。
如果我不放任何断点,他们不会通过并说表不存在!
它就像 sql 查询是异步的一样工作!
你知道这个错误吗?或者如何调试?
【问题讨论】:
标签: php mysql debugging phpunit
要对此进行调试,您需要查看查询日志 - 尤其是在数据加载完成和第一个单元测试开始时的事件序列。是否有从某个地方偷偷进入的 drop 数据库?
使用配置文件中的设置打开查询日志:
MySQL Manual - 5.1.2 Server Command Options
您可以在 MySQL 命令行工具中再次打开和关闭日志,但它写入的文件需要在配置文件中配置并重新启动服务器。
我之前在使用副本的测试环境中遇到过类似的问题 - 我最终发现我正在写入主服务器并从副本读取。有时,如果复制速度足够快,一些测试就会通过。请注意您的测试是否按照您认为的方式进行。
【讨论】: