I try to do some tests with Symfony 4 and phpunit 6, but i have an error message :
SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected" at /var/www/userDemo/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php line 108 F
2 / 2 (100%)
namespace App\Tests;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class RegistrationControllerTest extends WebTestCase
{
public function testSomething()
{
$client = static::createClient();
$crawler = $client->request('GET', '/');
$this->assertSame(200, $client->getResponse()->getStatusCode());
$this->assertSame(0, $crawler->filter('html:contains("Hello World")')->count());
}
public function testCheckPassword(){
$client = static::createClient();
$crawler = $client->request(
'GET',
'/register'
);
$form = $crawler->selectButton('S\'inscrire')->form();
$form['user[email]'] = '[email protected]';
$form['user[username]'] = 'usernametest';
$form['user[fullName]'] = 'John Doe';
$form['user[password][first]'] = 'pass1';
$form['user[password][second]'] = 'pass2';
$crawler = $client->submit($form);
//echo $client->getResponse()->getContent();
$this->assertEquals(1,
$crawler->filter('li:contains("This value is not valid.")')->count()
);
}
}
My env file :
APP_ENV=dev APP_SECRET=XXXX DATABASE_URL=mysql://root:@127.0.0.1:3306/userdemo
This application work well in dev environnement
Thank you !
[EDIT] Just add in phpunit.xml.dist
<env name="DATABASE_URL" value="mysql://root:@127.0.0.1/userDemo" />
Thank you to @dbrumann
.env
especially theDATABASE_URL
looks like? I assume it's missing the database name there. Make sure to also check the config/packages/tests/ folderand your phpunit.xml in case it overwrites the value. – dbrumannphpunit.xml.dist
for an env-entry in the<php>
section. It should match the database url in your env file. – dbrumann