2014-04-14 3 views
0

기능 테스트를 통해 내 콘트롤러를 테스트해야합니다. 기능 테스트를 수행하기 전에 데이터베이스를 기본 상태로 되돌리려면 일반 sql 스크립트를 어떻게 실행할 수 있습니까?symfony2는 각 기능 테스트 전에 SQL 데이터 셋 스크립트를 실행합니다.

+0

[LiipFunctionalTestBundle] (https://github.com/liip/LiipFunctionalTestBundle)을 사용하면 하나의 스크립트가 아닌 다른 곳으로 이동할 수 있습니다. 대신, 테스트 데이터베이스를 주어진 상태로 설정하는 데이터 픽스처 또는 조명기 세트를 정의 할 수 있습니다. 기본 상태가 비어 있으면 번들로 매우 쉽게 만들 수 있습니다. 자세한 내용은 설명서를 참조하십시오. – geoB

답변

0

테스트 기능 도구는 무엇인지 모르지만 Behat을 사용하면 정적 함수 "준비"를 초기화 할 수 있습니다. Behat web site

/** 
* @BeforeSuite 
*/ 
public static function prepare(SuiteEvent $event) 
{ 
    $base = 'php ' . escapeshellarg(__DIR__ . '/../../app/console') . ' '; 

    $commands = [ 
     $base . 'cache:clear', 
     $base . 'doctrine:schema:drop --force', 
     $base . 'doctrine:schema:create', 
     $base . 'doctrine:fixture:load --append', 
    ]; 
    foreach ($commands as $command) { 
     echo $command . "\n"; 
     $process = new Process($command); 
     $process->run(); 
    } 
} 

그래서, 데이터베이스를 삭제, 새로운 생성하고 모든 비품을로드 지금, 모든 테스트를 실행할 수 있습니다.