2013-01-13 2 views
17

PHPUnit으로 PhpStorm 5를 설정했으며 PhpStorm에 파일 저장시 단위 테스트를 자동으로 실행하는 기능이 있는지 궁금합니다. 손목 시계와 가드처럼. 필자는 사랑하는 www와 PhpStorm 문서를 검색해 보았지만 해결책을 찾지 못했습니다. 버전 6으로PhpStorm에서 파일을 저장할 때 단위 테스트 실행

+0

PhpStorm는 (파일이 저장됩니다 때 뭔가를 실행하는) 그런 능력이 없습니다.당신은 ** ** 매크로 **를 기록하여 (1) 파일을 저장하고 (2) 단위 테스트를 실행하고 몇 가지 바로 가기를 할당하고 저장 대신 사용할 수 있습니다. (분명히 파일이 자동으로 저장되면이 매크로 참여하지 않고있다). 그 외에도 파일 수정에 대한 특정 작업을 실행할 수있는 외부 파일 감시자를 찾습니다. ** P.S. ** 비슷한 종류의 기능을 요구하는 티켓입니다. http://youtrack.jetbrains.com/issue/IDEA-85791 – LazyOne

+0

@LazyOne이라는 매우 명확한 답변을 주셔서 감사합니다. 대단히 감사합니다! –

답변

24

는 PHPStorm는 "파일 당직자"

  • 프로젝트 환경 설정을 열고있다.
  • 왼쪽 옵션 목록에서 파일 감시자를 선택하십시오.
  • 빈 오른손 패널의 하단에있는 + 기호를 클릭하십시오.
  • 선택 <custom>

당신은 phpunit을위한 명령 줄을 설정해야합니다, 그것은 실 거예요 통합 테스트 할 수 있지만 콘솔에 오류를 출력 할 수 있습니다 (좋은 시작이 좋다!)

다양한 매크로 옵션을 사용할 수 있으므로 명령 줄에 전달 된 인수에 $FileNameWithoutExtension$Test.php을 포함 할 수 있습니다.

저는 개인적으로 두 명의 관찰자를 설정해야했습니다. 프로젝트 파일에 대한 첫 번째 감지 된 수정 사항 및 테스트 파일에 대한 두 번째 감지 된 변경 사항 (두 번째 파일 이름에 Test.php이 추가되지 않음) 또한 첫 번째 감시자에서 테스트 디렉토리를 제외 할 새 프로젝트 범위를 만들었습니다.

PHPStorm이 파일을 자동 저장 할 때 PHPUnit가 실행되므로 즉시 동기화를 해제 할 수도 있습니다.

내 다른 설정은 다음과 같은 :

  • 파일 형식 : PHP files (PHP)
  • 범위 : Project excluding tests
  • 프로그램 : /path/to/php
  • 인수 : /path/to/phpunit --configuration /path/to/phpunit.xml.dist /path/to/tests/$FileNameWithoutExtension$Test.php
  • 작업 디렉토리 : $FileDir$
  • 출력 경로 : $FileDir$

출력 필터가 설정되지 않고 구문 오류 검사가 활성화되고 콘솔에 오류가 표시됩니다.

+0

늦은 응답을 드려 죄송합니다. 그러나 이것은 훌륭한 정보입니다! 나는 이미 업 그레 이드했습니다 :)이 질문에 다시 돌아와 주셔서 감사합니다. Leigh –

+0

위대한 답변! 위 단계 만 수행하면 효과가 있습니다. PHPStorm 7에 대한 설정이 조금 변경되었으므로 작동하게 만드는 데 사용 된 세부 정보가 있습니다. ** [GDocs 링크] (https://docs.google.com/drawings/d/1mk2abn6k4cxa3HhqviVcshiwww3EvFkX_VhBtjXN3FE/편집) ** . PHPStorm 설정에서 자신의 범위를 만들었습니다. "감시 할 파일"을 포함 시켰습니다. –

+1

phpunit의'--filter' 옵션을 사용하여 구성을 단순화하고 1 개의 watcher 만 가질 수 있습니다. 인수 설정을'--filter $ FileNameWithoutExtension $'으로 변경하면 파일이나 단위 테스트를 편집하는 것과 관계없이 테스트가 실행됩니다. –

1

또한 그것은 파일 변경에 autmaticly phpunit을 실행 콘솔 도구입니다 TDDRunner

을 볼 수있다. 또한 파일 하나만을 실행하여 PHPUnit을 구성 할 수도 있습니다.

/usr/bin/tddrunner --group=test 

자세한 내용은 German article입니다.

관련 문제