Chúng tôi có khoảng 180 bài kiểm tra đơn vị thực hiện webtestcase
lớp và kiểm tra đang chạy trên bộ điều khiển.Kết nối PDO không được đóng khi phpunit đang chạy với symfony 2.X
Tuy nhiên, khi chạy thử nghiệm đơn vị, chúng sẽ mở quá nhiều kết nối tới db. Do quá nhiều kiểm tra kết nối tcp đang hoạt động không thành công sau thử nghiệm thứ 120. Tất cả các kết nối đang hoạt động trong khi thử nghiệm đang chạy.
Trong hàm tearDown, chúng tôi gọi hàm đóng của trình quản lý thực thể, nhưng không có gì, nó không ảnh hưởng gì. Có một số lớp giữ tham chiếu đối tượng kết nối, tôi nghĩ vậy.
Bởi vì trong hướng dẫn sử dụng php được đề cập về kết nối pdo đã đóng khi đối tượng được gán cho null. Chúng tôi cũng làm điều đó nhưng không có thay đổi. P.S: Bài kiểm tra đơn vị của chúng tôi là các bài kiểm tra chức năng. Hoạt động trên bộ điều khiển và được tích hợp với db, không có đối tượng giả nào
Lỗi của chúng tôi ở đâu? Làm thế nào chúng ta có thể khắc phục vấn đề?
này các thông số kết nối của tôi trong 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
Chúng tôi có thể xem cách bạn xác định kết nối của mình bên trong tệp config.yml và/hoặc parameters.yml không? – j0k
@ j0k Tôi đã thêm vào câu hỏi – GirginSoft
Tôi đã gặp sự cố tương tự một thời gian trước đây. Sự cố đã xảy ra do giao dịch chưa hoàn tất. Bạn có sử dụng giao dịch rõ ràng (tôi có nghĩa là bắt đầu-cam kết/rollback)? Nếu vậy, hãy chắc chắn rằng bạn luôn luôn hoàn thành nó. – Cyprian