2014-02-06 3 views
0

Netbeans에서 Sublime Text로 마이그레이션하기 위해 CLI를 통해 phpunit을 사용하려고합니다. phpunit에게 phpunit.xml 파일의 경로를 지정할 때 가장 이상한 문제가 있습니다. 절대 경로 et 만 허용하여 상대 경로를 거부합니다.PHPUnit은 phpunit.xml의 절대 경로가 필요합니다.

이 는 "phpunit.xml"를 읽을 수 없습니다

:

Maximes-MacBook-Pro:Frontoffice mbritto$ pwd 
/Users/mbritto/Documents/Frontoffice 
Maximes-MacBook-Pro:Frontoffice mbritto$ phpunit -c phpunit.xml 
Could not read "phpunit.xml". 

phpunit.xml 인 phpunit.xml 파일에 주어진 모든 상대 경로는이 오류에 이르게 이 폴더에 있으며 내 사용자가 읽을 수 있습니다. 나는 파일의 경로를 제공하지 않는 경우 이 실제로 작동 :

Maximes-MacBook-Pro:Frontoffice mbritto$ phpunit 
PHPUnit 3.7.28 by Sebastian Bergmann. 

Configuration read from /Users/mbritto/Documents/Frontoffice/phpunit.xml 

#Preparing Application Unit Tests 
.^C 

을 아니면 파일에 절대 경로를 제공하는 경우 :

Maximes-MacBook-Pro:Frontoffice mbritto$ phpunit -c /Users/mbritto/Documents/Frontoffice/phpunit.xml 
PHPUnit 3.7.28 by Sebastian Bergmann. 

Configuration read from /Users/mbritto/Documents/Frontoffice/phpunit.xml 

#Preparing Application Unit Tests 
..^C 

phpunit을를 사용하기 위해 나는이 필요 Plugin in Sublime Text는 phpunit.xml 파일을 테스트 할 파일의 경로와 함께 명령 줄에 제공합니다.

내 설정 :

  • OSX 10.9.1
  • PHP 5.4.24
(도의 Phar 테스트) (BREW를 통해)
  • phpunit을 3.7.28 (BREW를 통해)

    그 이유는 무엇입니까?

  • 답변

    1

    마침내 내 테스트에서 잘못된 점을 발견했습니다. 내 bootstrap.php 파일에서 다음과 같이했습니다 :

    chdir(dirname(__FILE__) . "/../src/"); 
    

    그래서 클래스와 자동로드는 테스트 클래스와 구분되는 실제 클래스를 찾습니다. 이 줄을 제거하면 클래스를 찾을 수 없기 때문에 테스트가 중단되지만 적어도 테스트는 실행됩니다. 디렉터리를 변경하는 대신 포함 경로에서 작업하므로 테스트가 다시 작동합니다.

    +0

    내 프로젝트의 루트에 부트 스트랩 파일이 있습니다. 그래서 PHPUnit을 시작할 때, 내가 응용 프로그램을 실행할 때와 비슷한 (맨 위) 트리에 있기를 원하는 디렉토리에 있기 때문에 모든 것을 찾을 수 있습니다 . 내 정상적인 포함/응용 프로그램 (lib 아래에있는 응용 프로그램 및 lib 아래 DB, 그래서 응용 프로그램이 lib/DB 포함하므로) 항상 알고 상대 경로 지정을 사용해야합니다. –

    +1

    팁 주셔서 감사합니다, 내 src 및 내 테스트 폴더는 형제이며 내 서버에서 src 폴더는 내 프로젝트의 루트입니다. 그래서 파일을 포함하기 위해 src 폴더에있는 것처럼 테스트를 실행해야했지만 리소스 (이미지 등)를로드 할 수 있어야했습니다. 결국 부트 스트랩 파일의 포함 경로를 수정하고 내 페이지를 수정하여 프로젝트의 루트가 아닌 위치에서 상대적으로 리소스에 액세스합니다. – mbritto

    관련 문제