작성된 독점적 인 프레임 워크에 작성자와 PHPSpec을 추가하고 있지만 테스트 할 클래스가있을 때 PHPSpec을 전역 네임 스페이스와 함께 사용할 수 없습니다. psr-4를 사용하여 정의해야하는 비표준 디렉토리에 있습니다.네임 스페이스가없고 psr-4가없는 PHPSpec을 구성하는 방법
/root
/spec
/classnameSpec.php
/classes
/autoload
/classname.php
자동로드 디렉토리는 응용 프로그램의 코어 클래스로 가득하고 그들이 지금 여기를 유지해야 그들은 있어서는 안, 다음과 같이 프로젝트에 알고 있어야합니다 파일 구조는 PHPSpec이 사용하는 default/src 디렉토리.
는 나는이 (부품) 작곡가 파일
{
"require": {
"phpspec/phpspec": "3.2.2"
},
"autoload": {
"psr-4": {
"Core\\": "classes/autoload"
}
}
}
이 phpspec.yml 파일과 네임 스페이스를 사용하여 작업있어 :
suites:
autoload_suite:
namespace: 'Core'
spec_prefix: ''
spec_path: ./spec
psr4_prefix: 'Core'
src_path: classes/autoload
하지만에 네임 스페이스를 추가하는 필요로 할 모든 필자가 기존 클래스를 테스트 할 수있게하려면 기존 클래스를 사용하십시오.
PHPSpec 문서는 yml 파일에 네임 스페이스 속성을 두지 않음으로써 null 네임 스페이스를 가질 수 있다고 제안하지만 어떤 조합을 시도해도 오류가 발생합니다.
내가 행복하게 사양 폴더에 테스트 클래스를 생성하지만 phpspec를 실행할 때 내가 얻을
phpspec desc classname
작업을 수행 할 때 : 나는 널 (null)로 두 속성을 떠나는 시도했습니다
[InvalidArgumentException]
PSR4 prefix doesn't match given class namespace.
, '', \\, "\\", "\\", \ 등을 제거하고 둘 다 제거하지만 아무 것도 작동하지 않습니다. 내가 사용할 수있는 속성의 특정 조합이 있습니까? 아니면 처음에 모든 것에 네임 스페이스를 추가해야 할 필요가 있습니까?