2013-05-14 5 views
0

2 일 동안 구성에 어려움을 겪고 있습니다. 내 bash는 에뮬레이터에서 phpunit을을 시작하면Symfony2에서 PHPUnit 데이터베이스 확장 기능을 올바르게 설치하십시오.

bin/phpunit -c app

(윈도우 7에서 작동) 나는 다음과 같은 오류가 발생했습니다 :

Configuration read from C:\wamp\www\myproject\app\phpunit.xml.dist

..PHP Fatal error: Class 'myproject\Business\Tests\Entity\PHPUnit_Extensions_Databas e_DataSet_YamlDataSet' not found in C:\wamp\www\myproject\src\myproject\Business\Tests\eUserManagerTest.php on line 39

내 환경이 의 경로를 접미사하려고


PHPUnit_Extensions_Database_DataSet_YamlDataSet
myproject \ Business \ Tests \ Entity w 여기서 require_once 문은 PHPUnit/Extensions/Database/DataSet/YamlDataSet.php에 정의되어 있음을 지정합니다.

"새로운"문은 아래이 나쁜 완료 임시로 연결!


    namespace myproject\Business\Tests\Entity; 

    require_once "PHPUnit/Autoload.php"; 
    require_once "PHPUnit/Extensions/Database/Autoload.php"; 
    require_once "PHPUnit/Extensions/Database/DataSet/YamlDataSet.php'; 

    use \PDO; 
    use myproject\Business\Entity\eUserManager; 

    class eUserManagerTest extends \PHPUnit_Extensions_Database_TestCase 
    {  
     ... 

     /** 
     * @return PHPUnit_Extensions_Database_DataSet_IDataSet 
     */ 
     protected function getDataSet() 
     { 
      return new PHPUnit_Extensions_Database_DataSet_YamlDataSet(
        dirname(__FILE__)."/eusertable.yml" 
        ); 
     } 


내 질문은 * U 자 %가 올바른 경로에보고되지 않는 이유를 파악하는 것입니다 (로 require_once에 정의 됨).

은 아마 리드 : 내 파일 트리에서 두 개의 서로 다른 phpunit을 exe 인 파일을 발견 :

/C/WAMP/www /에서 MyProject를/빈/phpunit을

/C/WAMP/빈/php에 이것은 단위 테스트를 위해 노력하고 있습니다

composer update

:

/php5.4.3/phpunit

나는 내가 composer.json 파일 + 발사에 선언하여 phpunit을 설치 할 때 첫 번째가 생성 된 생각 데이터베이스 핸들링 http://phpunit.de/manual/3.8/en/database.html

클래스 정의이 제 위치에있다 : 다음 phpunit을 문서에 설명 된 바와 같이

bin/phpunit -c app

두번째는 배를 통해 설치되었습니다 실행하여 데이터베이스를 포함하지
/C/wamp/bin/php/php5.4.3/phpunit/pear/PHPUnit/Extensions/Database

그리고 여기는 PHP가 내 클래스를 인스턴스화하기를 기대합니다.

내 힌트는이 이중 phpunit 설치 (symfony 자체와 php5.4.3 디렉토리의 다른 하나)에 연결될 수 있습니다.

잘 지내십니까?
설치 과정에서 실수가 있습니까?
Symfony는 배를 통해이 데이터베이스 확장 설치를 어떻게 인식합니까?

참고 : 런칭 :

/c/wamp/bin/php/php5.4.3/phpunit -c app

에서/C/WAMP/www /에서 myproject라는이 오류주고있다 : sh.exe을 "/c/wamp/bin/php/php5.4.3/phpunit를 : . \ php.exe가 : 나쁜 통역 : 당신의 도움이

답변

0

에 대한 해당 파일이나 디렉토리

덕분에 내가 뭘하려고했던 것을 이해하지 않고 우연히 혼자 해결책을 발견 Actuallly phpunit을 클래스가에 선언되어있다. 특정 네임 스페이스 대신 PHP의 전역 공간. PHP는이 전역 공간을 조사 할 수 있도록 클래스 이름 앞에 "\"를 추가해야합니다.

해결책은 다음과 같습니다.

 
    return new \PHPUnit_Extensions_Database_DataSet_YamlDataSet(
        dirname(FILE)."/eusertable.yml" 
        ); 

관련 문제