답변:
이 질문은 꽤 오래되었지만 여전히 트래픽과 답변을 얻고 있기 때문에 여기에 다시 요점을 언급했지만 다른 (최신) 질문에 대해서는 이미 설명했습니다.
난 정말 정말 SimpleTest 그 당황 여전히 phpunit을 대안으로 간주됩니다. 어쩌면 내가 잘못 알고 있지만 내가 본 한
web interface to phpunit tests
.아직 SimpleTest에 찬성하는 주장을 보지 못했습니다. PHPUnit은 pear를 통해 사용 가능하므로 설치가 더 간단하지 않습니다.
pear channel-discover pear.phpunit.de
pear install phpunit/PHPUnit
"첫 번째 테스트"는 거의 동일하게 보입니다.
현재는 PHPUnit 3.7
다음을 사용하여 설치 하기가 훨씬 쉽습니다 .PHAR Archive
wget http://pear.phpunit.de/get/phpunit.phar
chmod +x phpunit-3.7.6.phar
또는 Windows 에서 phar를 다운로드 하여 실행 중입니다.
php phpunit-.phar
또는 지원되는 작곡가 설치 방법을 사용할 때
"require-dev": {
"phpunit/phpunit": "3.7.*"
}
당신의 composer.json에.
PHPUnit을 테스트하려는 모든 것에 솔루션이 있으며 거의 모든 곳에서 도움말을 찾을 수 있습니다 (SO, #phpunit irc 채널, freenode, 거의 모든 PHP 개발자;))
내가 잘못 말하거나 무언가를 잊어 버린 경우 저를 수정하십시오 :)
비디오 : http://conference.phpnw.org.uk/phpnw11/schedule/sebastian-bergmann/
슬라이드 : http://www.slideshare.net/sebastian_bergmann/the-php-testers-toolbox-osi-days-2011
Atoum 과 같이 "PHP를위한 단순하고 현대적이며 직관적 인 단위 테스트 프레임 워크!"라고 언급합니다.
원래 PHP 답변 프로젝트와 관련이없는이 답변을 2011 년 1 월에 작성했습니다. 그 이후로 PHPUnit에 기여했습니다.
include
때문에 SimpleTest .PHP 파일을 단순히 ing하는 것보다 훨씬 어렵다는 것입니다 (다른 사람들이 설명했듯이). 전문 프로그래머가 자신의 테스트 환경 phpunit을을 구축하기위한 이길 하드 소리를하지만, PHP 기반 오픈 소스 응용 프로그램으로 테스트 시스템을 통합 할 경우 경우 "개발자" 응용 프로그램에 대한 가장이있을 수 있습니다 (I 부르는) "직업 프로그래머" 다음 SimpleTest의 단순함은 어쨌든 정말 매력적입니다. FWIW.
지금은 PHPUnit을 선호하지만 시작했을 때 항상 명령 줄에 액세스 할 수있는 것은 아니기 때문에 SimpleTest를 사용했습니다. SimpleTest는 훌륭하지만 실제로는 PHPUnit에 대해 유일하게 가지고있는 것은 웹 러너입니다.
PHPUnit을 좋아하는 이유는 phing (SimpleTest 와 마찬가지로 ), phpUnderControl 및 Xinc 와 같은 다른 PHP 개발자 도구와 통합 되기 때문 입니다. 버전 3.0부터는 조롱 지원이 있으며 적극적으로 개발되고 있으며 문서가 우수합니다.
실제로이 질문에 스스로 대답하는 유일한 방법은 두 가지를 모두 시도해보고 어떤 스타일에 더 잘 맞는지 확인하는 것입니다.
편집 : Phing은 이제 SimpleTest와 통합됩니다.
그러나 SimpleTest를 설치하는 방법을 쉽게 이해할 수 있습니다.
(내가 PHPUnit에 대한 지침을 기억할 수있는 한 "PEAR를 통해 설치하면 다른 방법으로 지침을 제공하지 않습니다")를 참조하십시오.
들어 SimpleTest , 그냥 다운로드하여 코드에서 가리 킵니다.
그래서 가장 간단한 것이 나에게 이겼다.
Baphled는 SimpleTest와 PHPUnit3 에 대한 좋은 기사를 가지고 있습니다.
허용 된 답변에서 언급 된 요점의 절반은 단순히 사실이 아닙니다.
단점 :
SimpleTest가 PHPUnit보다 설정하기가 훨씬 쉽다는 것을 알았습니다. 그냥 추출하면 좋습니다. 이 방법의 장점은 전체 테스트 프레임 워크를 소스 코드와 동일한 방식으로 저장할 수 있으므로 동일한 프레임 워크 코드를 사용하고 있다는 사실을 알기 때문에 둘 이상의 시스템에서 작업하는 경우 이점이 있습니다. 특히 어떤 식 으로든 수정 한 경우.
따라서 SimpleTest의 장점은 매우 가볍고 휴대하기 쉽다는 것입니다.
SimpleTest는 또한 매우 간단한 HTML GUI와 함께 제공되므로 원하는 경우 쉽게 확장 할 수 있습니다. 내가 아는 한 PHPUnit에는 HTML GUI가 포함되어 있지 않지만 Cool 과 같은 GUI :를 다운로드 할 수 있습니다 .
글쎄, phpUnit 웹 기반 UI 테스트 사례 러너를 만들고 sourceforge에서 사용할 수있게했습니다. ajax를 사용하고 sourceforge에서 샷 검사를하고 싶다면 멋진 인터페이스를 제공합니다. 프로젝트 이름은 phpunitwebui이고 웹 사이트는 http://phpunitwebui.sourceforge.net/
지적한 바와 같이, 둘 다 사용자가 작성한 테스트를 실행하고 결과를 다시보고하므로 주로 선호하는 선택입니다.
가장 간단한 웹 UI는 매우 유용하지만 때로는 성 가실 수도 있습니다. 현재 프로젝트에서 웹 응용 프로그램 (아파치를 올바르게 설정하고 파일을 public_html 루트에 복사하는 등)에서 웹 응용 프로그램 (API)이 작동하도록하려면 더 많은 작업을 시스템에 넣어야했습니다. 단순히 Eclipse 작업 공간에서 phpunit을 실행하십시오. 따라서 PHPUnit을 선택합니다. 또한 업데이트를 수동으로 추적 할 필요가 없으므로 PEAR 사용이 큰 도움이되었습니다. pear upgrade
한 번만 실행 하면 PHPUnit이 최신 상태로 유지됩니다.
이것은 매우 캐주얼 한 PHP 개발자의 관점에서 볼 수 있습니다.
PHPUnit을 파악하는 데 2 일이 걸렸습니다. 주로 드디어 포기한 Eclipse에서 디버그하려고했습니다.
Eclipse에서 디버그를 포함하여 Simpletest를 설정하는 데 2 시간이 걸렸습니다.
어쩌면 앞으로 Simpletest의 단점을 찾을 수 있지만 지금까지 필요한 상황은 TestClasses, Mock 객체, 테스트 코드 디버깅 및 상황의 빠른 스냅 샷을위한 웹 인터페이스입니다.
다시 : 이것은 매우 캐주얼 한 PHP 사용자 관점에서 볼 때 (개발자조차도 :-)
이 질문은 오래되었지만 경험을 추가하고 싶습니다. PHPUnit은 이제 표준으로 보이지만 많은 글로벌 변수를 사용하는 레거시 시스템으로 작업하면 시작에 갇힐 수 있습니다. PHPUnit에서 전역 변수로 테스트를 수행하는 좋은 방법이없는 것처럼 보입니다. $ GLOBALS를 통해 변수를 설정 해야하는 것 같습니다. 글로벌 변수를 어디에나 설정하는 수많은 파일이 있으면 좋지 않습니다. 문제는 레거시 시스템에 문제가 있다고해서 그런 시스템에서 테스트를 수행 할 수 없다는 의미는 아닙니다. SimpleTest를 사용하면 그러한 것이 간단합니다. PHPUnit이 클래스 / 함수 범위 내에서가 아니라 파일을 전역 적으로 포함시킬 수 있다면 너무 문제가되지 않을 것이라고 생각합니다.
또 다른 유망 솔루션입니다 http://www.enhance-php.com , 좋은 :) 보이는
<phpunit backupGlobals="false">
구성 XML에서 사용 하고 테스트에서 전역에 아무런 문제가 없었습니다 ...
global $xxx
있었고 모든 시도를하기 전에 --no-globals-backup
갑자기 @backupGlobals @backupStaticAttributes @runInSeparateProcess @preserveGlobalState 및 모든 조합을 시도했습니다. 예상대로 작동합니다. : D