최근 PHPUnit에 문제가있어 확장 기능이 설치되어 있음에도 불구하고 PHPUnit_Extensions_Story_TestCase가 누락되었습니다. 이전에는 pear install phpunit/PHPUnit_Story를 사용하여 설치되었습니다. 이것은 실패한 단위 테스트를 실행하는 경우에만 발생합니다.PHPUnit은 PHPUnit_Extensions_Story_TestCase가 누락되었다고 불평합니다.
ECould not find PHPUnit_Extensions_Story_TestCase
#0 PHPUnit_Util_Fileloader::{closure}(PHPUnit_Extensions_Story_TestCase) called at [/Users/pedro/Code/Repositories/api-v2/src/XXX/system/Autoloader.php:40]
#1 Autoloader->autoload(PHPUnit_Extensions_Story_TestCase)
#2 spl_autoload_call(PHPUnit_Extensions_Story_TestCase)
#3 class_exists(PHPUnit_Extensions_Story_TestCase) called at [phar:///usr/bin/phpunit/phpunit/Util/Blacklist.php:110]
#4 PHPUnit_Util_Blacklist->initialize() called at [phar:///usr/bin/phpunit/phpunit/Util/Blacklist.php:74]
#5 PHPUnit_Util_Blacklist->isBlacklisted(phar:///usr/bin/phpunit/php-invoker/Invoker.php) called at [phar:///usr/bin/phpunit/phpunit/Util/Filter.php:105]
#6 PHPUnit_Util_Filter::getFilteredStacktrace(PHP_Invoker_TimeoutException Object ([] => Execution aborted after 5 seconds,[] => ,[] => 0,[] => phar:///usr/bin/phpunit/php-invoker/Invoker.php,[] => 111,[] => Array ([0] => Array ([file] => /Users/pedro/Code/Repositories/api-v2/src/XXX/data/adapters/MySQLiAdapter.php,[line] => 160,[function] => callback,[class] => PHP_Invoker,[type] => ->,[args] => Array ([0] => 14)),[1] => Array ([file] => /Users/pedro/Code/Repositories/api-v2/src/XXX/data/adapters/MySQLiAdapter.php,[line] => 306,[function] => query,[class] => XXX\data\adapters\MySQLiAdapter,[type] => ->,[args] => Array ([0] => SELECT * FROM `users` ORDER BY RAND() LIMIT 82)),[2] => Array ([file] => /Users/pedro/Code/Repositories/api-v2/src/XXX/data/objects/Mapper.php,[line] => 138,[function] => select,[class] => XXX\data\adapters\MySQLiAdapter,[type] => ->,[args] => Array ([0] => `users`,[1] => ,[2] => RAND(),[3] => 82)),[3] => Array ([file] => /Users/pedro/Code/Repositories/api-v2/src/XXX/resources/hybrid/Users.php,[line] => 53,[function] => read,[class] => XXX\data\objects\Mapper,[type] => ->,[args] => Array ([0] => RAND(),[1] => 82)),[4] => Array ([function] => read,[class] => XXX\resources\hybrid\Users,[type] => ->,[args] => Array ([0] => XXX\data\objects\Operation Object
이 마지막으로 실제 문제를 이야기하는 경우까지 더 라인의 얼마나 많은 수백 모르는 방법에 간다 : 그래서, 대신에 "정상"적절한 오류 스택 추적을 가지고, 나는 이런 식으로 뭔가를
Time: 20.35 seconds, Memory: 18.50Mb
There was 1 failure:
1) Tests\XXX\resources\hybrid\NotificationsTest::testReadNotificationsWithLimit
Failed asserting that '4567135422196220076' matches expected 4567135456555958453.
/Users/pedro/Code/Repositories/api-v2/tests/XXX/resources/hybrid/NotificationsTest.php:168
FAILURES!
Tests: 5, Assertions: 15, Failures: 1.
Generating code coverage report in Clover XML format ...
저는 PHPUnit 4.0.10을 실행 중이며 PHPUnit_Story-1.0.2를 설치했습니다. 나는 이것이 정상적인 행동이 아니라는 것을 이해하지만, 불행하게도 이것을 제거하는 방법을 모른다. 어떤 제안?
P. -/usr/bin/phpunit 파일을 검사하고 autoload 함수에서 $ classes 배열에 'phpunit_extensions_story_testcase'가있는 항목이 누락되었습니다. 그러나 파일을 편집하려고하면 Phar가 잘못된 서명에 대해 불평합니다.
예, 그런 문제가있었습니다. 사실 클래스가없는 경우 Exception을 던지고있었습니다. 방금 그 코드를 제거하고 "반환"으로 바꿨습니다. 나는 더 이상 그 문제를 가지고 있지 않습니다. 기이 한 일은 PHPUnit 버전 <3.7.32에이 문제가 없었기 때문입니다. 설명해 주셔서 감사합니다. –
필자는 PHPUnit이 3.7.32 이전 버전에서 자체 오토로더를 사용하지 않았다고 믿습니다. 최신 버전에서는 PHPUnit의 오토로더가 작동해야합니다. –
위의 관련 정보를 반복해야합니다. _PHP 오토로더는 클래스를로드 할 수 없으면 자동으로 false를 반환합니다. _ 관련 정보를 찾는데 몇 시간이 걸렸습니다. – mkluwe