Phpunit перезапускает тесты случайно

Я пытаюсь проверить приложение symfony2 с помощью PHPUnit. У меня есть один проект, в котором все работает так, как ожидалось, но в моем другом проекте у меня такое странное поведение, что PHPUnit либо перестает выполнять тестовый набор случайным образом в конце всех тестов, либо перезапускает или перезапускает тесты после завершения тестового набора и написания кода охват. В других случаях он работает нормально.

Вот некоторые результаты, чтобы сделать видимым то, что происходит (тест перезапускается снова и снова):

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, может воспроизвести это поведение?

Ответ 1

Я бы предложил проверить границы подключения к базам данных и пулы.

Например, если у вас максимальный предел в 100 подключений, и некоторые из тестов оставляют открытые соединения ( "утечки" ), вы попадаете в пределы там.

Это также объясняет, почему иногда это работает, и иногда оно достигает предела, так как ваша база данных может одновременно обрабатывать другие задачи, поэтому иногда вы попадаете в потолок, а в других случаях, когда ничего не запускается, вы можете успешно выполнять свои тесты.

Проверьте наличие постоянных сетевых подключений и других внешних ресурсов.