我尝试用Symfony 4和phpunit 6进行一些测试,但是我有一个错误消息:
/var/www/userDemo/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php行108F处的“SQLSTATE3D000:无效目录名:1046no数据库” 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]'] = 'toto@email.com';
$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()
);
}
}
我的env文件:
DATABASE_URL=mysql://root:@127.0.0.1:3306/userdemo APP_ENV=dev APP_SECRET=XXXX
此应用程序在开发环境中运行良好。
谢谢!
编辑只需在phpunit.xml.dist中添加
<env name="DATABASE_URL" value="mysql://root:@127.0.0.1/userDemo" />
谢谢@dbrumann
发布于 2018-01-09 09:26:59
文档说明了如何在更改功能测试的数据库设置中很好地解决问题
如果您有功能测试,您希望它们与一个真正的数据库进行交互。大多数情况下,您希望使用专用数据库连接,以确保在开发应用程序时不覆盖您输入的数据,并且能够在每次测试之前清除数据库。 为此,您可以重写DATABASE_URL env在phpunit.xml.dist中的值,以便在测试中使用不同的数据库:
https://stackoverflow.com/questions/48085404
复制相似问题