単体テストをセットアップしようとしていますが、「phpunit -c app」を実行すると、次のエラーが発生します。
Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException:存在しないサービス「test.client」をリクエストしました。
私のテストケースのコードは次のとおりです。
public function testNonAuthenticatedPathsIndex()
{
$client = $this->createClient();
}
CreateClientを呼び出さないと、すべてが正しく実行されます。 AppKernel.phpをチェックして、FrameworkBundle(このサービスが定義されている場所だと思います)が確実に存在していることを確認しました。
私は以前にこの種のことを何とかしたことがあるので、これを引き起こしている可能性があるものについて少し混乱しています。
助けてくれてありがとう。
でframework.test
オプションを有効にしましたか config_test.yml?
framework:
test: ~
phpunit.xml
次のような環境変数が必要です。
<env name="APP_ENV" value="test"/>
私はsymfonyバージョン3.3.13でこの問題を抱えていました。
config_test.yml
ファイルは問題ありませんでしたが、同じ間違いをしました。
Phpunit.xmlファイルのphp
の下に<server name ="APP_ENV" value="test" />
オプションを追加することを解決しました
プロジェクトのリモートビルドでも同じ問題が発生しました。この問題は、プロジェクトのルートにある空のsymfony.lock
ファイルに関連していました。このファイルは、symfonyレシピが2回実行されるのを防ぐためのものです。しかし、私のsymfony.lock
が破損していて空だったため、framework-bundleがそのレシピを実行し、APP_ENV
のphpunit.xml.dist
変数をtest
からdev
に置き換えました。それが起こった理由は、composer.json
のrepositories
ノードでした( https://github.com/symfony/flex/issues/347 )
symfony.lock
に依存関係を自分の手で追加することで、この状況を修正しています