Kể từ bốn tháng, chúng tôi xây dựng một ứng dụng web phức tạp với Laravel 4 với phạm vi kiểm tra đơn vị tốt. Bây giờ chúng tôi có 159 bài kiểm tra và 592 xác nhận để ngăn chặn sự hồi quy và cho phép chúng tôi dễ dàng tái cấu trúc ứng dụng của mình.Laravel & PHPUnit: cho phép quá trình cách ly để ngăn chặn Mysql Quá nhiều lỗi kết nối
đẹp bức tranh nhưng vì vài ngày chúng ta có lỗi sau đây trong các bài kiểm tra cuối cùng:
PDOException: SQLSTATE[HY000] [1040] Too many connections
Lý do rất đơn giản: tất cả các test chạy trong quá trình tương tự và MySQL chỉ cho phép một số lượng nhất định truy cập trong cùng một lúc. Bây giờ, chúng tôi có quá nhiều bài kiểm tra. Nếu tôi xóa vài bài kiểm tra ở giữa bộ thử nghiệm của tôi, những bài kiểm tra cuối cùng sẽ vượt qua.
Giải pháp có thể là chạy PHPUnit trong quá trình cách ly như trong cấu hình bên dưới nhưng các thử nghiệm Laravel dường như không được khởi chạy như thế. Tôi nhận được một lỗi khác trong mỗi bài kiểm tra:
PHPUnit_Framework_Exception: Notice: Constant LARAVEL_START already defined in /.../.../autoload.php on line 3
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="bootstrap/autoload.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="true"
stopOnFailure="false"
syntaxCheck="false"
>
</phpunit>
Vì vậy, câu hỏi của tôi là: làm thế nào tôi có thể cấu hình Laravel thử nghiệm để làm việc với processIsolation="true"
hay bạn thấy một giải pháp khác cho vấn đề của tôi?
Bạn đã giải quyết được sự cố này chưa? –
Bạn có thể kiểm tra cuộc thảo luận này: https://plus.google.com/107528973720672293459/posts/bBC5CdKPFQ4 để biết thêm thông tin. Về cơ bản, tôi không thể cấu hình Laravel và PHPUnit với nhau để làm việc với processIsolation vì vậy tôi chỉ thiết lập max_connections thành 1000 trong cấu hình MySQL. Không phải là rất đẹp nhưng điều đó hoạt động. –