Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用两个数据库进行Symfony功能测试_Symfony_Functional Testing_Fixtures_Liipfunctionaltestbundle - Fatal编程技术网

使用两个数据库进行Symfony功能测试

使用两个数据库进行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

我正在使用liip功能测试包对我的应用程序进行功能测试。 我在config_test.php文件中配置了一个测试数据库:

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”吗?