2016-04-06 30 views
2

Sitemizin giriş formunu test etmek için basit bir PHPUnit/Symfony WebTestCase'i kurdum.PHPUnit + Symfony: Crawler Yönlendirmeleri Takip Et SegFault

$form = $crawler->filter("#register")->form(); 

// set form values 

$crawler = $this->client->submit($form); 

formu /register sunacağı ve sonra (/ OK geri /register için başarısızlık üzerine ve 200) başarısı üzerine /registered yönlendirmektedir.

Yukarıdaki bloktan önce $this->client->followRedirects(); veya gönderimden sonra $this->client->followRedirect(); kullanırsam bir segfault alıyorum. Gerçekten segfault'un nerede yer aldığına dair bir işaret yok. not ait başka

şey: Bu --filter [THE CLASS] kullanarak üst sınıfı (2 testleri), yani testleri I SADECE testler eğer iyi çalışır. Bu testi çalıştırmayı denediğimde, tam paketle birlikte (~ 15 test), segfault'u alırım.

-d bayrağını kullanarak phpunit daha fazla bellek vermeyi denedim, ancak bu gerçekten yardımcı olmuyor.

cevap

2

Sorun, diğer bileşenlerle birlikte denetleyici çalışmasında olabilir.

Process Isolation in PHPUnit'u kullanmanızı öneririz, böylece kritik testi ayrı bir PHP işleminde çalıştırabilirsiniz. Örnek olarak, aşağıdaki ek açıklamaları kullanabilirsiniz:

Indicates that all tests in a test class should be run in a separate PHP process:

/** 
* @runTestsInSeparateProcesses 
*/ 
class MyTest extends PHPUnit_Framework_TestCase 
{ 
    // ... 
} 

Indicates that a test should be run in a separate PHP process:

class MyTest extends PHPUnit_Framework_TestCase 
{ 
    /** 
    * @runInSeparateProcess 
    */ 
    public function testInSeparateProcess() 
    { 
     // ... 
    } 
} 

Umut bu yardım

+0

Serin teşekkürler, bir seferde da vereceğiz. –

+0

Çalıştığı gibi görünüyor, teşekkürler! –

+0

hoş biri. Benim için de seg hata çözüldü :) Bunun için teşekkürler :) – Sharpy35