Composer에서 PhpUnit을 사용하려고합니다. 이 목적으로 내가 그랬어 : REQ 작곡가 섹션PhpUnit을 사용할 때 작성기가 로더를로드 할 수 없습니다.
1 추가 된 phpunit을을 :
"require": { "php": ">=5.3.0" }, "require-dev": { "phpunit/phpunit": "3.7.*" }, "autoload": { "psr-0": {"PhpProject": "src/"} }
이 필요한 것을 설치 :
php composer.phar install --dev
작업이 성공을 마쳤다. 내가 테스트를 실행하고자 할 때
Installing phpunit/phpunit (3.7.6) Downloading: 100%
은 불행히도, 난
./vendor/bin/phpunit PHP Fatal error: Call to a member function add() on a non-object in /home/serek/php/project/tests/bootstrap.php on line 12
문제가 발생
얻을 수 있기 때문에 반환 ComposerAutoloaderInit :: getLoader(); in vendor/autoload는 테스트 부트 스트랩에 NULL을 반환합니다.로더를 해킹하지 않고 어떻게 해결할 수 있을지 궁금하십니까?
코드 :
> <?xml version="1.0" encoding="UTF-8"?>
>
> <phpunit bootstrap="tests/bootstrap.php" colors="true">
> <testsuites>
> <testsuite name="PhpProject Test Suite">
> <directory>tests/PhpProject/</directory>
> </testsuite>
> </testsuites>
>
> <filter>
> <whitelist>
> <directory suffix=".php">src/PhpProject/</directory>
> </whitelist>
> </filter> </phpunit>
테스트/bootstrap.php phpunnit.xml.dist (여기 난 단지 오토로더를 필요)
> $loader = require_once __DIR__ . "/../vendor/autoload.php";
> $loader->add('PhpProject\\', __DIR__); //<- this is problematic line 12 (comments has 9 lines)
/../vendor/autoload.php
// autoload.php generated by Composer
require_once __DIR__ . '/composer' . '/autoload_real.php';
return ComposerAutoloaderInit::getLoader();
공유하지 않는 코드 조각에 대해 이야기하고 있습니다.이 코드 조각을 질문에 추가하면 다른 사람들이 쉽게 이해할 수 있습니다. – hakre
명백하게 테스트 부트 스트랩이 오류를 던지지만 코드를 보여주지는 않습니다. 귀하의 가정이 틀릴 수도 있습니다. – Sven
일부 파일 내용이 지금 첨부되어 있습니다 – mrok