Когда я запускаю свой тестовый пакет PHPUnit, я достиг максимального предела подключения (200) для MySQL.
Горячее исправление заключалось в том, чтобы установить max_connection на 500, но я ищу лучшее решение в контексте Zend Framework 2.
Я попытался поместить некоторый метод tearDown, но не повезло, это кажется бесполезным или неполным решением.
Это пример кода:
protected function tearDown()
{
// i have two entitymanager
$this->getObjectManager()->get('doctrine.connection.orm_alternate')->close();
$this->getObjectManager()->get('doctrine.connection.orm_default')->close();
$this->application = null;
gc_collect_cycles();
parent::tearDown();
}
Я также пытался использовать processIsolation, чтобы обратиться к true, но некоторые тесты так долго, что я предположил, что моя консоль застыла или что-то в этом роде....
С подключением doctrine2 и Zend Framework, как я могу предотвратить это "слишком много соединений" во время тестов PHPunit?
до сих пор с подсказками @awons я пытался изменить
$this->getObjectManager()->get('doctrine.connection.orm_alternate')->close();
в
$this->getObjectManager()->get('doctrine.entitymanager.orm_alternate')->close();
Я проверил, был ли вызван срыв, да.
Что-то я не понимаю: в каждом тесте создается новый экземпляр моих подключений, почему это не тот же экземпляр? (например, singleton или Registry)? Но этот экземпляр никогда не закрывается, даже если он не используется после прохождения теста.
Я что-то делаю, но не знаю, что.