我正在尝试使用PHPUnit测试我的symfony2应用程序。我有一个项目,其中一切都按预期工作,但在我的另一个项目中,我有这种奇怪的行为,PHPUnit在所有测试结束后随机停止执行Test Suite,并在完成Test Suite并编写代码后重新启动或重新启动测试覆盖。其他时候它正常运行。
这里有一些输出可以看到正在发生的事情(测试重复一遍又一遍):
PHPUnit 3.6.10 by Sebastian Bergmann.
Configuration read from C:\workspace\cllctr\app\phpunit.xml
................................................................. 65 / 83 ( 78%)
...........PHPUnit 3.6.10 by Sebastian Bergmann.
Configuration read from C:\workspace\cllctr\app\phpunit.xml
................................................................. 65 / 83 ( 78%)
...PHPUnit 3.6.10 by Sebastian Bergmann.
Configuration read from C:\workspace\cllctr\app\phpunit.xml
................................................................. 65 / 83 ( 78%)
............PHPUnit 3.6.10 by Sebastian Bergmann.
Configuration read from C:\workspace\cllctr\app\phpunit.xml
................................................................. 65 / 83 ( 78%)
............PHPUnit 3.6.10 by Sebastian Bergmann.
Configuration read from C:\workspace\cllctr\app\phpunit.xml
................................................................. 65 / 83 ( 78%)
..................
Time: 01:03, Memory: 43.00Mb
OK (83 tests, 145 assertions)
Writing code coverage data to XML file, this may take a moment.
Generating code coverage report, this may take a moment.
以下是Test Suite在执行所有测试后重新启动的示例:
PHPUnit 3.6.10 by Sebastian Bergmann.
Configuration read from C:\workspace\cllctr\app\phpunit.xml
................................................................. 65 / 83 ( 78%)
..................
Time: 01:29, Memory: 53.25Mb
OK (83 tests, 145 assertions)
Writing code coverage data to XML file, this may take a moment.
Generating code coverage report, this may take a moment.
PHPUnit 3.6.10 by Sebastian Bergmann.
Configuration read from C:\workspace\cllctr\app\phpunit.xml
................................................................. 65 / 83 ( 78%)
............PHPUnit 3.6.10 by Sebastian Bergmann.
由于我的其他项目运行没有任何问题,我的代码中必定存在一些问题。但我无法弄清楚可能触发这种行为的原因!日志没有显示任何意外/奇怪。
修改
昨天,我注意到一些奇怪的事情:由于一些无关的原因,我决定从MongoDB切换到MySQL。转换完成后,所有测试都运行没有任何问题。我尝试了很多次,我不能重现它了。因为这只发生在我的功能测试中,我倾向于认为问题是我的WebTestCase类,它运行一些命令来清除和重建数据库。也许有人也使用MongoDB可以重现这种行为吗?
答案 0 :(得分:1)
我建议检查数据库服务器连接限制和池。
例如,如果你有100个连接的最大限制,并且某些测试使连接断开("泄漏"),那么你就会达到极限。
这也可以解释为什么有时它会起作用,有时会达到极限,因为你的数据库可以同时处理其他任务,所以有时你会达到上限,其他时候什么都没有运行,你可以成功运行你的测试。
检查持久性网络连接和其他外部资源。