我有一个奇怪的错误。我启动了一个PHP Unit测试套件。最初,它执行一个大查询来初始化数据库。
如果我在执行sql之后插入断点,则没有问题,我的测试通过了。
如果我没有提出任何断点,他们就不会通过并说这些表不存在!
就好像sql查询是异步的一样!
你对这个bug有所了解吗?或者如何调试?
答案 0 :(得分:0)
要对此进行调试,您需要查看查询日志 - 特别是在数据加载完成点周围的事件序列以及第一个单元测试开始时。有丢弃数据库从某个地方偷偷进入吗?
使用配置文件中的设置打开查询日志:
MySQL Manual - 5.1.2 Server Command Options
您可以在MySQL命令行工具中再次打开和关闭日志,但是需要在配置文件中配置它写入的文件并重新启动服务器。
我在使用副本的测试环境中遇到了类似的问题 - 我最终发现我正在写主人并从副本中读取。有时候,如果复制速度足够快,一些测试就会通过。小心你的测试正在做你认为他们正在做的事情。