Reputation: 2307
I'm trying to setup a unit test but whenever I run "phpunit -c app" I get this error:
Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException: You have requested a non-existent service "test.client".
The code in my test case is just:
public function testNonAuthenticatedPathsIndex()
{
$client = $this->createClient();
}
If I don't make the call to createClient everything runs correctly. I've checked AppKernel.php to make sure the FrameworkBundle (I believe that's where this service is defined) is definitely still in there and it is.
I'm a bit confused as to what might be causing this as I've managed to do this kind of thing before.
Thanks for any help.
Upvotes: 40
Views: 16340
Reputation: 511
composer require symfony/browser-kit
The definition test.client
depends upon AbstractBrowser::class
presence
Upvotes: 2
Reputation: 1844
I had same issue with remote builds of my project. This issue was connected with empty symfony.lock
file in the root of my project. This file is for preventing symfony recipes execution twice. But my symfony.lock
was corrupted and empty so framework-bundle executed it's recipe and replaced my APP_ENV
variable in phpunit.xml.dist
from test
to dev
. The reason why it happened was repositories
node in composer.json
(https://github.com/symfony/flex/issues/347)
I'm fixing this situation by adding dependencies in symfony.lock
by my hands
Upvotes: 0
Reputation: 2924
In phpunit.xml
you should have env variable like:
<env name="APP_ENV" value="test"/>
Upvotes: 10
Reputation: 513
I had this problem with symfony version 3.3.13.
The config_test.yml
file was fine, but I did the same mistake.
I solved adding the <server name ="APP_ENV" value="test" />
option under php
in the phpunit.xml file
Upvotes: 5
Reputation: 1275
Have you enabled the framework.test
option in config_test.yml?
framework:
test: ~
Upvotes: 84