Simple Test vs PHPunit
이 두 가지 일을 모두 해 본 경험이 있는 사람이 있다면 그 둘의 중요한 차이점을 설명해 줄 수 있을까요?
각각의 특정 케이스에 적합한 특정 강도가 있습니까?
이 질문은 꽤 오래되었지만 여전히 트래픽과 답변을 받고 있기 때문에 저는 여기서 제 요점을 다시 말하려고 합니다. 그래서 다른 (새로운) 질문에도 이미 했습니다.
Simple Test가 여전히 phpunit의 대안으로 고려되고 있다는 것은 정말 당황스럽습니다.내가 잘못 알고 있는 건지도 모르지만 내가 본 바로는:
- PHPUnit은 표준입니다.대부분의 프레임워크는 그것을 사용합니다(Zend Framework(1&2), Cake, Agavi 등).Symfony도 Symfony 2에서 phpunit용 프레임워크를 폐기하고 있습니다.
- PHPUnit은 모든 PHP IDE(Eclipse, Netbeans, Zend Stuide, PHPStorm)에 통합되어 있어 잘 작동합니다.
- Simpletest는 PHP 5.1(구형)의 이클립스 확장을 가지고 있으며, 그 외에는 없습니다.
- PPUnit은 코드 커버리지 및 테스트보고서의 모든 표준 로그파일을 출력하기 때문에 모든 연속 통합 서버에서 정상적으로 동작합니다.
- Simple Test는 그렇지 않습니다.이것은, 「테스트」를 중단하고 소프트웨어의 개발을 개시하면, 큰 문제가 되지 않습니다(그렇습니다만, 그 발언은 자극적입니다).너무 심각하게 받아들이지 마십시오.
- PHPUnit은 능동적으로 유지 보수되고 안정적이며 모든 코드베이스, 모든 시나리오 및 테스트 작성 방법에 적합합니다.
- (주제) PHPUnit은 Simpletest보다 훨씬 뛰어난 코드 커버리지 보고서를 제공합니다.
- PHPUnit을 사용하면 IDE(Netbeans, Eclipse 등)에서도 이러한 보고서를 얻을 수 있습니다.
- 또, 에는 몇개의 제안이 있습니다.
Simple Test를 지지하는 주장은 아직 없습니다.PHPUnit은 pear 경유로 이용할 수 있기 때문에 설치가 간단하지 않습니다.
pear channel-discover pear.phpunit.de
pear install phpunit/PHPUnit
'첫 번째 테스트'도 거의 똑같아 보여요
현재PHPUnit 3.7
를 사용하는 것만으로 간단하게 인스톨 할 수 있습니다.
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.*"
}
당신의 작곡가.json에게.
테스트하고 싶은 모든 것에 대해 PHPUnit에는 솔루션이 있으며 거의 모든 장소에서 도움말을 찾을 수 있습니다(SO, #phpunit irc channel on freenode, 거의 모든 php developer).
제가 틀린 말을 했거나 잊어버린 부분이 있으면 정정해 주세요:)
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용 유닛 테스트 프레임워크!"라고 부른다.
완전 공개
저는 원래 2011년 1월에 PHP Testing 프로젝트와 관련이 없는 답변을 작성했습니다.그 후 저는 PHPUnit에 기고하게 되었습니다.
지금은 PHPUnit을 선호하지만 처음 시작할 때는 명령줄에 항상 액세스할 수 없었기 때문에 Simple Test를 사용했습니다.Simple Test도 좋지만 PHPUnit을 넘어서는 것은 웹러너뿐이라고 생각합니다.
PHPUnit을 좋아하는 이유는 PHING(SimpleTest와 마찬가지로), phpUnderControl, Xinc와 같은 다른 PHP 개발자 도구와 통합되기 때문입니다.버전 3.0에서는 모의 지원을 제공하고 있으며 현재 활발히 개발 중이며 문서도 훌륭합니다.
이 질문에 스스로 대답하는 유일한 방법은 두 가지를 모두 한 번 시도해보고 어떤 것이 당신의 스타일에 더 잘 맞는지 보는 것입니다.
편집: Ping은 Simple Test와도 통합됩니다.
- PHPUnit 다운로드 및 설치 방법을 이해할 수 없습니다.
그러나 Simple Test 설치 방법은 쉽게 이해할 수 있었습니다.
(PHPUnit의 설명서에서 PEAR 경유로 인스톨 해, 그 외의 방법에 대해서는 일절 설명하지 않습니다)를 참조해 주세요.
- http://www.phpunit.de/manual/current/en/installation.html
SimpleTest의 경우 다운로드하여 코드에서 가리킵니다.
그래서 Simpletest가 이겼어요.
승인된 답변에서 언급된 사항의 절반은 사실이 아닙니다.
Simple Test에는
- 간단한 셋업(폴더에 추가, 포함 및 실행)
- 단순히 폴더를 버전 관리로 체크인합니다(요즘 phpunit을 사용하여 이를 시도합니다:).
- 의존성이 적고 확장자가 많다(웹테스터, 폼테스터, 인증)
- 확장하기 쉬운 좋은 코드 커버리지 리포터(기능명, 기능명, 색상)
- 코드 커버리지 요약(드디어 PHPUnit 4.x에 도달)
- 그룹과 단일 파일 실행이 있는 괜찮은 웹 러너와 Ajax 웹 러너
- 보다 뛰어난 diff 툴(공백이나 줄바꿈 문제 없음)
- phpUnit에 의한 SimpleTests를 실행하는 어댑터/와이퍼 및 그 반대
- 호환성 PHP5.4+
단점:
- 업계 표준이 아님(PHPUnit)
- 적극적으로 유지되고 있지 않다
Baphled는 Simple Test vs PHPunit3에 관한 훌륭한 기사를 게재하고 있습니다.
Simple Test는 PHPUnit보다 셋업하기 쉬웠습니다.추출만 하면 됩니다.테스트 프레임워크 전체를 소스 코드와 동일하게 저장할 수 있어 동일한 프레임워크 코드를 사용하고 있음을 알 수 있기 때문에 이 방법의 이점은 여러 머신에서 작업하는 경우입니다.특히 당신이 어떤 식으로든 그것을 수정한다면요.
그래서 Simple Test의 강점은 매우 가볍고 휴대성이 좋다는 것입니다.
Simple Test는 또한 매우 간단한 HTML GUI를 탑재하고 있어 원하는 경우 쉽게 확장할 수 있습니다.PHPUnit에는 HTML GUI가 포함되어 있지 않은 것으로 알고 있습니다만, Cool 등 다운로드 가능한 GUI가 있습니다.
음, 저는 phpUnit 웹 기반 UI 테스트 케이스 런너를 만들어 소스 포지에서 사용할 수 있게 했습니다.ajax를 사용하여 sourceforge에서 shot check를 하고 싶은 경우 인터페이스도 꽤 쿨합니다.프로젝트명은 phpunitwebui이고 웹사이트는 http://phpunitwebui.sourceforge.net/ 입니다.
이미 지적된 바와 같이, 두 가지 모두 사용자가 작성한 테스트를 실행하고 결과를 보고하기 때문에 대부분 선호하는 선택입니다.
Simpletest Web UI는 매우 유용하지만 때로는 번거로울 수도 있습니다.현재 프로젝트에서는 어플리케이션(API)이 웹 인터페이스(apache를 올바르게 설정, public_html root에 파일 복사 등)에서 동작하도록 하기 위해 단순히 이클립스 워크스페이스에서 phpunit을 실행하는 것보다 더 많은 작업을 해야 했습니다.그래서 나는 PHPUnit을 선택한다.또한 업데이트를 수동으로 추적할 필요가 없기 때문에 PEAR를 사용하는 것이 큰 장점입니다.심플한 실행pear upgrade
PHPUnit은 최신 상태로 유지됩니다.
이것은 매우 캐주얼한 PHP 개발자의 관점에서 볼 때 다음과 같습니다.
PHPUnit을 파악하는 데 이틀이 걸렸는데, 대부분 이클립스에서 디버깅을 시도했지만 결국 포기했습니다.
Eclipse에서 디버깅을 포함한 Simpletest를 설정하는 데 2시간이 걸렸습니다.
향후 Simpletest의 단점을 발견할 수 있을 것 같습니다만, 지금까지의 심플테스트는, 필요한 기능을 갖추고 있습니다.TestClasses, Mock 객체, 테스트 코드 디버깅 및 웹 인터페이스로 상황의 빠른 스냅샷을 만듭니다.
다시: 이것은 매우 평범한 PHP 사용자의 관점에서 볼 때 (개발자도 아니다:-)
한동안 Simple Test를 체크하지 않았는데, 지난번에는 이클립스 플러그인이 있어서 큰 요인이었지만 오랫동안 업데이트가 되지 않았습니다.Sebastian Bergmann은 여전히 PHPUnit에 매우 적극적으로 작업하고 있지만, 이클립스용 플러그인은 아직 없지만, 새로운 Zend Studio에 포함되어 있습니다.
이 질문은 오래되었지만 제 경험을 덧붙이고 싶습니다.PHPUnit이 표준이 된 것 같습니다만, 많은 글로벌 변수를 사용하는 레거시 시스템을 사용하면 처음부터 막혀 버릴 수 있습니다.PHPUnit에서 글로벌 변수와 테스트하는 좋은 방법은 없는 것 같습니다. 글로벌 변수를 설정하는 파일이 곳곳에 있다면 $GLOBALS를 통해 변수를 설정해야 할 것 같습니다.네, 레거시 시스템에 문제가 있다고 하는 사람도 있습니다만, 그렇다고 해서 이러한 시스템에서 테스트를 실시할 수 없는 것은 아닙니다.Simple Test에서는 이러한 작업이 간단합니다.PHPUnit을 통해 클래스/함수 범위가 아닌 글로벌하게 파일을 포함할 수 있다면 큰 문제가 되지 않을 것입니다.
또 다른 유망한 솔루션은 http://www.enhance-php.com입니다. 보기에도 좋습니다. : )
한 번에 테스트할 수 있는 함수가 수천 개에 달할 때 phpunit은 성공입니다. 웹 기반이기 때문에 간단한 테스트가 부족합니다.
소규모 테스트에서는 아직 간단한 웹 to를 사용하고 있습니다.
하지만 둘 다 좋다.
언급URL : https://stackoverflow.com/questions/34312/simpletest-vs-phpunit
'programing' 카테고리의 다른 글
어떤 'php.ini' 파일이 사용되고 있는지 어떻게 알 수 있습니까? (0) | 2022.10.03 |
---|---|
Java에서 URL을 검증하는 중 (0) | 2022.10.02 |
문자열로 PHP 클래스 속성 가져오기 (0) | 2022.10.02 |
MySql Select 쿼리에서 UTC 날짜를 로컬 시간대로 변환하는 방법 (0) | 2022.10.02 |
정의되지 않은 의 속성을 읽을 수 없습니다('$store' 읽기). (0) | 2022.10.02 |