約180個のユニットテストでwebtestcase
クラスが実装されており、テストがコントローラ上で実行されています。phpunitがsymfony 2.Xで動作しているときにPDO接続が閉じられていない
しかし、ユニットテストを実行すると、DBへの接続が多すぎます。アクティブなTCP接続テストが多すぎるため、120回目のテスト後に失敗します。テストが実行されている間、すべての接続はアクティブです。
私たちがエンティティマネージャのclose関数を呼び出すtearDown関数では何もありませんが、何の影響もありません。接続オブジェクトの参照を保持するいくつかのクラスがあります。
オブジェクトがヌルに割り当てられている場合、pdo接続に関するPHPのマニュアルが記載されているため閉じています。私たちもそれを行いますが、変更はありません。 P.S:私たちの単体テストは機能テストです。コントローラを介して動作し、dbと統合され、モックオブジェクトはありません
私たちのミスはどこがわかりましたか?どうすれば問題を解決できますか? config_test.yml
imports:
- { resource: config_dev.yml }
framework:
test: ~
session:
storage_id: session.storage.mock_file
web_profiler:
toolbar: false
intercept_redirects: false
doctrine:
dbal:
driver: pdo_mysql
port: 3306
host: localhost
dbname: mydb
user: myuser
password: mypass
charset: UTF8
config.ymlファイルやparameters.ymlの中でどのようにあなたの接続を定義するのか分かりますか? – j0k
@ j0k質問に追加しました – GirginSoft
しばらく前に同様の問題がありました。この問題は、未完成のトランザクションのために発生しました。トランザクションを明示的に使用していますか(私はbegin-commit/rollbackを意味します)?その場合は、必ず終了してください。 – Cyprian