2012-06-26 5 views
-1

저는 ZF 응용 프로그램을 작성하고 있습니다. 라이브러리 디렉토리에 일부 추상 부모 클래스가 있습니다. Netbeans는 문제없이 자식 클래스의 테스트 스켈레톤을 생성 할 수 있으며 테스트를 아무 문제없이 실행할 수 있습니다.PHPUnit 경로 문제

나중에 추상 부모를 라이브러리에서 응용 프로그램 디렉토리로 이동하기로 결정했습니다 (가독성 향상을 위해). 그에 따라 응용 프로그램 코드를 업데이트했는데 문제가 없습니다.

그러나 이제는 netbeans를 사용하여 하위 클래스에 대한 테스트 스켈레톤을 생성 할 때 부모를 찾을 수 없다는 치명적인 오류가 발생합니다. 그런 다음 테스트 클래스를 수동으로 생성하고 명령 줄에서 실행했습니다. PHPUnit도 동일한 오류를 발생 시켰습니다.

이 경로 지정이 올바르게 작동하려면 무엇을해야합니까? PHPUnit 부트 스트랩에서 응용 프로그램 디렉토리를 포함 경로에 추가하고 응용 프로그램을 Zend Autoloader로 이름 공간으로 등록하려고 시도했습니다. 나는이 권장되는 방법입니다 생각하지 않는다, 그것은

난 정말 어떤 도움이 많이 감사합니다

... 경로 문제, 파일을 찾는 등으로 어려움을 겪고 않습니다 ... 어쨌든 실패했습니다.

답변

0

좋아요, 그래서 라이브러리에서 핵심 코드 디렉토리로 클래스를 이동할 수 있습니다. 핵심 코드는 ZF가 자동으로 지정한 표준 명명 규칙을 따르므로 아무 문제가 없습니다.

다른 응용 프로그램 (예 : PHPUnit)은 해당 응용 프로그램을 찾을 수 없습니다. 나는이 ZF를 자동로드하는 것을 설정함으로써이 문제를 해결할 수있었습니다. 또는 require_once에 필요한 파일을 통합 할 수 있습니다 (처음에는 자동 로딩 사용을 무효로합니다).

내 최고의 기회는 공유 클래스를 다시 라이브러리에 넣는 것입니다. 필자의 원래 PHPUnit 부트 스트랩은 ZF 자동 공급기에 라이브러리 접두사를 추가합니다.

전체적으로, 나는 도서관에서 또 다른 좋은 사용법을 배웠다.

[편집 :] 또 다른 대안은 ...

내 테스트 클래스

는 phpunit을위한 자동 로딩을 설정 젠드 응용 프로그램을 부트 스트랩된다. 이런 식으로하는 유일한 단점은 (내 netbeans IDE를 통해) PHPUnit이 나를 위해 스켈레톤 테스트를 만들 수 없다는 것입니다. 나는 그걸로 살아야 할 것 같아.