我一直在进行单元测试,但遇到了这个奇怪的坏问题。
我正在使用我的一些服务/映射器进行用户身份验证测试。
我现在总共进行了大约 307 次测试。只有当我在一批中运行它们时才会真正发生这种情况。
我尝试只实例化一个 Zend_Application 对象并将它用于我的所有测试。我只实例化它来处理数据库连接、会话和类的自动加载。
这是问题所在。
沿着测试线的某个地方调用 Zend_Session_SaveHandler_DbTable 的 __destruct 方法。我不知道为什么?但确实如此。
__destruct 方法将使对我的会话对象的任何写入都无用,因为它们被标记为只读。
我不知道为什么要调用 destruct 方法。
在我的身份验证测试之前,它会被调用很多测试。如果我单独运行每个测试文件夹,则没有问题。只有当我尝试运行所有 307 测试时。我确实有一些测试可以完成数据库工作,但我的代码没有关闭数据库连接或破坏保存处理程序。
有没有人知道为什么会发生这种情况以及为什么我的 Zend_Session_SaveHandler_DbTable 被破坏了?这与默认情况下的生命周期有什么关系吗?