Symfony2 プロジェクトで phpunit を実行すると、テストは常に最初の実行で失敗します。
$ phpunit -c app src/Project/MyBundle/Tests/Controller/SomeTest.php
PHPUnit 3.7.19 by Sebastian Bergmann.
Configuration read from src/main/app/phpunit.xml
E
Time: 1 second, Memory: 24.25Mb
There was 1 error:
1) Project\MyBundle\Tests\Controller\RegistrationTest::testStdRegistration
PHPUnit_Framework_Exception: PHP Fatal error: Interface 'Swift_Events_SendListener' not found in src/main/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Plugins/MessageLogger.php on line 19
PHP Stack trace:
PHP 1. {main}() -:0
PHP 2. require_once() -:542
FAILURES!
Tests: 1, Assertions: 0, Errors: 1.
その後、テストを再開すると、すべてがうまくいきます。エラーなし。私は、すべてがファイル cache/test/appTestDebugProjectContainer.php の存在に要約されると考えました。このファイルは、テストが最初に実行される前には存在しません。この実行後、それが作成され、次のテストで使用されます。私は常に、Symfony2 がすべての関連ファイルを最初のテストの実行前に作成するという印象を受けていましたが、そうではないようです。では、どうすればこの問題を解決できますか? テストを開始する前にキャッシュを手動でウォームアップする必要がありますか? または、キャッシュ ファイルが作成されるのを待つためにテストを変更する必要がありますか?