Dört aydan beri Laravel 4 ile iyi bir birim test kapsamı içeren karmaşık bir web uygulaması oluşturuyoruz. Şimdi, regresyona karşı önlem almak ve uygulamanızı kolayca yeniden düzenlememize izin vermek için 159 test ve 592 onayımız var.Laravel & PHPUnit: Mysql'yi önlemek için işlem yalıtımına izin ver Çok fazla bağlantı hatası
Güzel resim ancak birkaç gün beri sahip olduğumuz son testlerde aşağıdaki hata:
PDOException: SQLSTATE[HY000] [1040] Too many connections
Nedeni basit: tüm testler aynı süreçte çalıştırın ve MySQL içinde erişimin sadece belirli sayıda izin aynı zamanda. Şimdi çok fazla testimiz var. Test takımımın ortasındaki birkaç testi silersem, son olanlar geçer.
çözüm aşağıda config gibi işlem tek başına PHPUnit çalıştırmak olabilir ama laravel testleri böyle açılacak gibi görünmüyor. Her testte bir diğer hata alıyorum:
Yani benim sorudurPHPUnit_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>
: nasıl laravel processIsolation="true"
ile çalışmak için test yapılandırabilirsiniz veya Sorunum için başka bir çözüm görüyorsunuz? https://github.com/padraic/mockery#mocking-public-static-methods
Bundan böyle, ben aslında SQL test daha fazla odaklanarak öneririm:
bu sorunu çözdü mü? –
Daha fazla bilgi için şu tartışmayı kontrol edebilirsiniz: https://plus.google.com/107528973720672293459/posts/bBC5CdKPFQ4. Temel olarak, Laravel ve PHPUnit'i süreç ile birlikte çalışacak şekilde konfigüre edemiyorum, bu yüzden max_connections'ı MySQL yapılandırmasında 1000'e ayarladım. Çok hoş değil ama işe yarıyor. –