2016-04-06 6 views
2

サイトのログインフォームをテストするための簡単なPHPUnit/Symfony WebTestCaseが用意されています。PHPUnit + Symfony:リダイレクトに従うとSegFaultが発生する

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

// set form values 

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

フォームは(失敗した場合にバック/registerにOK/200)/registerに提出した後、成功に/registeredにリダイレクトされます。

上記のブロックの前に$this->client->followRedirects();、または$this->client->followRedirect();のいずれかを使用すると、segfaultが表示されます。 segfaultがどこで起こっているのかは実際にはわかりません。

その他の注意点:このテストの親クラス(2回のテスト)でテストを実行すると、--filter [THE CLASS]が正常に動作します。このテストを実行しようとすると、完全なスイート(〜15テスト)と一緒に、私はsegfaultを取得します。

私は-dフラグを使ってphpunitのメモリを増やそうとしましたが、実際には役に立ちません。

答えて

2

この問題は、他のコンポーネントと組み合わせてコントローラの動作にある可能性があります。

Process Isolation in PHPUnitを使用することをお勧めします。重大なテストを別のPHPプロセスで実行することができます。例として、あなたはのために、次のアノテーションを使用することができます。

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() 
    { 
     // ... 
    } 
} 

・ホープ、このヘルプ

+0

クールなおかげで、私は行くことを与えるでしょう。 –

+0

それは働いたように見える、ありがとう! –

+0

いいです。私のためにsegの障害を解決しました:)それに感謝:) – Sharpy35

関連する問題