2014-03-13 6 views
8

PHP Yii 프레임 워크를 사용하고 기능 테스트를 실행합니다. 나는 PHPUnit_StoryPHP 경고 PHPUnit_Extensions_Story_TestCase.php에 스트림을 열지 못했습니다.

pear install phpunit/PHPUnit_Story 

를 설치해야하고, 확장이

/usr/share/php/PHPUnit/Extensions/Story 

입니다하지만 난 얻을 오류 :

phpunit을하고 YII 자동 로더 사이에 문제가있는 것 같습니다
PHP Warning: include(PHPUnit_Extensions_Story_TestCase.php): failed to open stream: No such file or directory in /var/www/yii/framework/YiiBase.php on line 427 
PHP Stack trace: 
PHP 1. {main}() /usr/bin/phpunit:0 
PHP 2. PHPUnit_TextUI_Command::main() /usr/bin/phpunit:581 
PHP 3. PHPUnit_TextUI_Command->run() phar:///usr/bin/phpunit/phpunit/TextUI/Command.php:132 
PHP 4. PHPUnit_TextUI_TestRunner->doRun() phar:///usr/bin/phpunit/phpunit/TextUI/Command.php:179 
PHP 5. PHPUnit_TextUI_ResultPrinter->printResult() phar:///usr/bin/phpunit/phpunit/TextUI/TestRunner.php:425 
PHP 6. PHPUnit_TextUI_ResultPrinter->printFailures() phar:///usr/bin/phpunit/phpunit/TextUI/ResultPrinter.php:177 
PHP 7. PHPUnit_TextUI_ResultPrinter->printDefects() phar:///usr/bin/phpunit/phpunit/TextUI/ResultPrinter.php:322 
PHP 8. PHPUnit_TextUI_ResultPrinter->printDefect() phar:///usr/bin/phpunit/phpunit/TextUI/ResultPrinter.php:243 
PHP 9. PHPUnit_TextUI_ResultPrinter->printDefectTrace() phar:///usr/bin/phpunit/phpunit/TextUI/ResultPrinter.php:254 
PHP 10. PHPUnit_Util_Filter::getFilteredStacktrace() phar:///usr/bin/phpunit/phpunit/TextUI/ResultPrinter.php:290 
PHP 11. PHPUnit_Util_Blacklist->isBlacklisted() phar:///usr/bin/phpunit/phpunit/Util/Filter.php:105 
PHP 12. PHPUnit_Util_Blacklist->initialize() phar:///usr/bin/phpunit/phpunit/Util/Blacklist.php:74 
PHP 13. class_exists() phar:///usr/bin/phpunit/phpunit/Util/Blacklist.php:110 
PHP 14. spl_autoload_call() phar:///usr/bin/phpunit/phpunit/Util/Blacklist.php:110 
PHP 15. YiiBase::autoload() phar:///usr/bin/phpunit/phpunit/Util/Blacklist.php:0 
PHP Warning: include(): Failed opening 'PHPUnit_Extensions_Story_TestCase.php' for inclusion (include_path='.:/var/www/yii-example/protected/components:/var/www/yii-example/protected/models:/usr/share/php:/usr/share/pear') in /var/www/yii/framework/YiiBase.php on line 427 
PHP Stack trace: 
PHP 1. {main}() /usr/bin/phpunit:0 
PHP 2. PHPUnit_TextUI_Command::main() /usr/bin/phpunit:581 
PHP 3. PHPUnit_TextUI_Command->run() phar:///usr/bin/phpunit/phpunit/TextUI/Command.php:132 
PHP 4. PHPUnit_TextUI_TestRunner->doRun() phar:///usr/bin/phpunit/phpunit/TextUI/Command.php:179 
PHP 5. PHPUnit_TextUI_ResultPrinter->printResult() phar:///usr/bin/phpunit/phpunit/TextUI/TestRunner.php:425 
PHP 6. PHPUnit_TextUI_ResultPrinter->printFailures() phar:///usr/bin/phpunit/phpunit/TextUI/ResultPrinter.php:177 
PHP 7. PHPUnit_TextUI_ResultPrinter->printDefects() phar:///usr/bin/phpunit/phpunit/TextUI/ResultPrinter.php:322 
PHP 8. PHPUnit_TextUI_ResultPrinter->printDefect() phar:///usr/bin/phpunit/phpunit/TextUI/ResultPrinter.php:243 
PHP 9. PHPUnit_TextUI_ResultPrinter->printDefectTrace() phar:///usr/bin/phpunit/phpunit/TextUI/ResultPrinter.php:254 
PHP 10. PHPUnit_Util_Filter::getFilteredStacktrace() phar:///usr/bin/phpunit/phpunit/TextUI/ResultPrinter.php:290 
PHP 11. PHPUnit_Util_Blacklist->isBlacklisted() phar:///usr/bin/phpunit/phpunit/Util/Filter.php:105 
PHP 12. PHPUnit_Util_Blacklist->initialize() phar:///usr/bin/phpunit/phpunit/Util/Blacklist.php:74 
PHP 13. class_exists() phar:///usr/bin/phpunit/phpunit/Util/Blacklist.php:110 
PHP 14. spl_autoload_call() phar:///usr/bin/phpunit/phpunit/Util/Blacklist.php:110 
PHP 15. YiiBase::autoload() phar:///usr/bin/phpunit/phpunit/Util/Blacklist.php:0 
+0

같은 문제가 나타납니다. 인터넷 검색을 통해 대부분의 사람들이 모든 PHPUnit 의존성을 설치하지 않았다고 제안하지만, 저의 경우는 아닙니다. – Hippyjim

답변

8

. PHPUnit은 하나의 phar 아카이브를 사용하기로 전환하고 있기 때문에 Yii가 포함하려고 시도하는 파일은 더 이상 존재하지 않습니다.

지금 phpunit을하고 종속성을 설치하기 위해 권장되는 방법은 작곡가를 사용하는 것입니다. 나는 그것의 단점을 모두와 함께 PEAR를 사용하여 싸우고 며칠을 보냈지 만 작곡가 YII이 튜토리얼은 내가 분 후에 다시 단위 테스트를 실행했다 :

http://blog.mediasuite.co.nz/tip-how-to-set-up-phpunit-for-yii-using-composer/

기본 단계 :

는 작곡가 만들기 프로젝트 루트에서 .json 파일 :

{ 
    "require-dev": { 
     "phpunit/phpunit": "3.7.*", 
     "phpunit/phpunit-selenium": ">=1.2", 
     "phpunit/dbunit": ">=1.2", 
     "phpunit/phpunit-story": "*", 
     "phpunit/php-invoker": "*" 
    }, 
    "autoload": { 
     "psr-0": {"": "src"} 
    }, 
    "config": { 
     "bin-dir": "bin/" 
    } 
} 

를 사용하여 프로젝트에 작곡가를 설치

curl -sS https://getcomposer.org/installer | php 

확인 작곡가 실행 가능 : 보호/테스트 지금

./bin/phpunit --version 

:

./composer.phar install --dev 

가 설치 프로젝트 특정 phpunit을 버전을 확인합니다

chmod +x composer.phar 

하자 작곡가가 종속성을 설치 다음을 사용하여 단위 테스트를 실행할 수 있습니다.

../../bin/phpunit unit 

../../bin/phpunit functional 

와 셀레늄 테스트는 버전 제어를 사용하는 경우, 그것은 composer.json을 커밋하고 파일을 composer.lock하지만/공급 업체 폴더의 내용을 무시하는 것이 가장 좋습니다

+0

감사합니다! 마침내 작동합니다! 작곡가없이 phpunit을 실행하려고 시도했지만 phar 파일 만 실행했지만 실패했습니다 ... – antoniom

관련 문제