문제

현재 MVC 프레임 워크 응용 프로그램에서 PHPUnit을 실행하려고 할 때 다음 오류가 발생합니다

Fatal error: Cannot redeclare class PHPUnit_Util_FilterIterator in /usr/local/pear/PHPUnit/Util/FilterIterator.php on line 162
.

나는 그 오류를 몇 가지 일들의 조합으로 추적 할 수 있었다.

$paths = array();
$paths[] = '../m';
$paths[] = '../v';
$paths[] = '../c';
$paths[] = '/usr/local/pear';
set_include_path(implode(PATH_SEPARATOR, $paths));
.

에 댓글을 달았습니다.
    set_include_path(implode(PATH_SEPARATOR, $paths));
.

phpUnit은 테스트를 실행합니다

에 댓글을 달았습니다.
$paths[] = '/usr/local/pear';
.

i는

를 얻습니다
Fatal error: require_once(): Failed opening required 'PHPUnit/Framework/TestCase.php' 
.

다른 모든 디렉토리를 주석 처리하면

에 저장하십시오.
$paths[] = '/usr/local/pear';
.

"Redeclare"오류가 발생합니다.

실제 테스트를 실행할 수있는 유일한 방법은 set_include_path 문없이 실행되며 개별 단위 테스트에서 호출되는 모든 클래스 파일을 수동으로 포함시키는 경우입니다.

아이디어가 있습니까?

편집 : __autoload 함수와 충돌하는 것이 나타납니다.나는 아직도 문제를 해결하는 방법을 확실히 확신하지 못합니다.

도움이 되었습니까?

해결책

잘 꺼지는 것처럼, 나는 왜 이것이 실제로 작동하는지 모르지만, 그렇게하기 때문에 결과를 게시 할 것입니다.

$paths[] = get_include_path();
$paths[] = '../m';
$paths[] = '../v';
$paths[] = '../c';
set_include_path(implode(PATH_SEPARATOR, $paths));
.

그래서 당신은 가야합니다.적어도, 당신이 실제로이 문제가있는 경우에도 있습니다.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top