web-dev-qa-db-ja.com

Symfony2Beta3で「存在しないサービス「test.client」をリクエストしました」を取得し続ける

単体テストをセットアップしようとしていますが、「phpunit -c app」を実行すると、次のエラーが発生します。

Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException:存在しないサービス「test.client」をリクエストしました。

私のテストケースのコードは次のとおりです。

public function testNonAuthenticatedPathsIndex()
{
    $client = $this->createClient();
}

CreateClientを呼び出さないと、すべてが正しく実行されます。 AppKernel.phpをチェックして、FrameworkBundle(このサービスが定義されている場所だと思います)が確実に存在していることを確認しました。

私は以前にこの種のことを何とかしたことがあるので、これを引き起こしている可能性があるものについて少し混乱しています。

助けてくれてありがとう。

37
pogo

framework.testオプションを有効にしましたか config_test.yml

framework:
  test: ~
82
Ajb

phpunit.xml次のような環境変数が必要です。

<env name="APP_ENV" value="test"/>
9
Karol Gasienica

私はsymfonyバージョン3.3.13でこの問題を抱えていました。

config_test.ymlファイルは問題ありませんでしたが、同じ間違いをしました。

Phpunit.xmlファイルのphpの下に<server name ="APP_ENV" value="test" />オプションを追加することを解決しました

5
matiux

プロジェクトのリモートビルドでも同じ問題が発生しました。この問題は、プロジェクトのルートにある空のsymfony.lockファイルに関連していました。このファイルは、symfonyレシピが2回実行されるのを防ぐためのものです。しかし、私のsymfony.lockが破損していて空だったため、framework-bundleがそのレシピを実行し、APP_ENVphpunit.xml.dist変数をtestからdevに置き換えました。それが起こった理由は、composer.jsonrepositoriesノードでした( https://github.com/symfony/flex/issues/347

symfony.lockに依存関係を自分の手で追加することで、この状況を修正しています

0
Nikita Leshchev