使用两个数据库进行Symfony功能测试
我正在使用liip功能测试包对我的应用程序进行功能测试。 我在config_test.php文件中配置了一个测试数据库:使用两个数据库进行Symfony功能测试,symfony,functional-testing,fixtures,liipfunctionaltestbundle,Symfony,Functional Testing,Fixtures,Liipfunctionaltestbundle,我正在使用liip功能测试包对我的应用程序进行功能测试。 我在config_test.php文件中配置了一个测试数据库: doctrine: dbal: default_connection: default connections: default: driver: %database_driver_sqlite% path: %database_path
doctrine:
dbal:
default_connection: default
connections:
default:
driver: %database_driver_sqlite%
path: %database_path%
当我运行测试时,我得到一个错误:在最后一行断言false为true失败
public function test()
{
$this->loadFixtures(array(
'UserBundle\DataFixtures\ORM\LoadUserData'
));
$client = static::makeClient(true,
array(
'HTTP_HOST' => 'mylocalhost'
));
$crawler = $client->request('GET', '/login');
$form = $crawler->selectButton('Login')->form(array(
'_username' => 'username',
'_password' => 'password',
),'POST');
echo ' TEST RESULT '.$client->getResponse()->getStatusCode().' ';
$client->submit($form);
$this->assertTrue($client->getResponse()->isRedirect());
$client->followRedirect();
echo ' TEST RESULT '.$client->getResponse()->getStatusCode().' ';
$crawler = $client->request('GET', '/another page');
$this->assertTrue($crawler->filter('html:contains("some_text_on_page")')->count() > 0);
如果我从config_测试文件中注释测试数据库配置,则测试运行正常。我想要的是:在测试数据库中写入fixture,并在真实数据库上运行断言和其他测试您是否使用console命令初始化了测试数据库?这需要遵循
原则:schema:create--env=test
。是的,数据库已创建,schema已创建,夹具已加载一些诊断工具:清除测试缓存,检查test.log,使用$client->getResponse()->getContent()
查看页面上的内容,使用类似Firefox的附加SQLite管理器来确认数据。。它没有通过登录阶段。我相信它会从我的空测试数据库而不是我的真实数据库中检查凭据。尝试更小的步骤:在public function setup()
中加载fixture,在testLogin()
中只测试登录名,在testather()中测试获取页面。另外-是“/other page”缺少下划线,而URI真的是“/other_page”?您是否使用控制台命令原则:database:create--env=test
初始化了测试数据库?这需要遵循原则:schema:create--env=test
。是的,数据库已创建,schema已创建,夹具已加载一些诊断工具:清除测试缓存,检查test.log,使用$client->getResponse()->getContent()
查看页面上的内容,使用类似Firefox的附加SQLite管理器来确认数据。。它没有通过登录阶段。我相信它会从我的空测试数据库而不是我的真实数据库中检查凭据。尝试更小的步骤:在public function setup()
中加载fixture,在testLogin()
中只测试登录名,在testather()中测试获取页面。加-是“/other page”缺少下划线,而URI真的是“/other_page”吗?