phpunit перезапускает тесты случайным образом - PullRequest
72 голосов
/ 08 марта 2012

Я пытаюсь протестировать свое приложение symfony2 с помощью PHPUnit.У меня есть один проект, в котором все работает, как и ожидалось, но в моем другом проекте у меня странное поведение: 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.

Поскольку мой другой проект выполняется без проблем, в моем коде должны быть некоторые проблемы.Но я не могу понять, что, возможно, вызывает это поведение!Журналы не показывают ничего неожиданного / странного.

EDIT

Вчера я заметил кое-что странное: я решил переключиться с MongoDB на MySQL по некоторым не связанным с этим причинам.,После завершения перехода все тесты запускаются без проблем.Я пробовал это много раз, и я больше не могу это воспроизводить.Поскольку это происходило только с моими функциональными тестами, я склонен думать, что проблема заключалась в моем классе WebTestCase, который запускает некоторые команды для очистки и перестройки базы данных.Может быть, кто-то, кто также использует MongoDB, может воспроизвести это поведение?

1 Ответ

1 голос
/ 26 августа 2015

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...