2010-03-11 6 views
45

PHPUnit 테스트 스위트를 실행하기위한 간단한 "웹 인터페이스"가 있습니까? 즉, 명령 행에서 테스트를 실행하고 잘 포맷 된 HTML 결과를 출력하는 PHP 스크립트.PHPUnit 테스트를위한 "웹 인터페이스"?

웹 응용 프로그램을 개발하고 일상적인 워크 플로는 대개 IDE와 브라우저 사이를 전환합니다. 동일한 환경에서 단위 테스트를하고 싶습니다.

저는 정말 간단하고 PHP 기반의 것을 찾고 있습니다. phpUnderControl (내가 찾고있는 기능이 있지만)에 들어갈 예정이지만 아직 없습니다.

+0

+1 Pekka, 내 마음을 읽을 수 없습니까? – middus

+0

@middus 때로는 * 놀라운 * 우연의 일치가 있습니다. :) –

+0

phpUnderControl의 대안으로 Hudson을 확인할 수도 있습니다. 설정하는 방법에 관한 좋은 기사 (좋은 온라인 참조 자료가 있음)는 http://luhman.org/blog/2009/12/16/installing-hudson-phing-phpunit-and-git-ubuntu – wimvds

답변

12

당신은 PHPUnitTask을 실행하는 phing 사용한 다음으로 출력을 변환 할 수 있습니다

  • PHPUnitReport

    -이 작업은 XSLT를 사용하여 HTML로 phpunit을의 XML 보고서를 변환합니다.

예 :

<phpunitreport infile="reports/testsuites.xml" 
    format="frames" 
    todir="reports/tests" 
    styledir="/home/phing/etc"/> 

는 다양한 출력 포맷 phpunit --help를 참조하십시오.

PHPUnit의 2.3 버전에는이 장이 있지만 지금은 얼마 지나지 않습니다. 당신은 어딘가에 Google과 함께 오래된 사본을 찾을 수있을 것입니다.

phpUnderControl에 대한 내용이므로 언급하지 않으 셨다면 Jenkins와 http://jenkins-php.org을 사용해보십시오.

사이드 노트 : 우리가 CI 서버를 사용하지 않는 한, 내가 아는 대부분의 사람들은 웹 인터페이스를 통해 PHPUnit을 사용하지 않습니다. 그것들은 단지 명령 행이나 IDE 통합을 사용합니다.

+0

건배 @Gordon이게 재미있어 보여. 추가 종속성에 대해 자세히 알고 싶습니다. 그래서 먼저 발견 한 블로그 게시물을 사용해 보겠습니다 (아래 참조). 그것이 작동하지 않으면, 나는 이것으로 돌아 올 것이다. –

+0

@Pekka 블로그 게시물의 접근 방식은 비슷합니다. 또한 XML을 사용하여 HTML로 다시 형식화합니다. phing을 사용하고 싶지 않다면 PHPUnit에서 XML을 가져와 Phing의 XSLT를 사용하여 프로그래밍 방식으로 PHP로 변환 할 수 있습니다. XSL 파일은 여기에 있습니다 : http://phing.info/trac/browser/trunk/etc – Gordon

+0

XSL 파일에 대한 현재 링크는 http://www.phing.info/trac/browser/etc –

1

필자는 그런 웹 인터페이스를 보지 못했습니다 ...하지만 항상 IDE와 웹 브라우저를 사용하고 있다고 말하면서 다른 점을 생각해보십시오.

즉, 가능한 해결책은 IDE에서 unittest를 시작하는 것입니다 .-)
테스트 방법이나 원인으로 인해 실패한 테스트를 클릭 할 수 있어야합니다. 테스트 실패 예를 들어. PHP는 + phpunit을 세계에서


, 내가 Zend Studio 그 않는다는 것을 알고있다 - 예, 그것은 불행히도하지 무료 ;-(이클립스 PDT를 사용


, 해결책은로 phpunit을 등록하는 것 외부 도구 (예 : this blogpost : Using PHPUnit with Eclipse PDT) -하지만 꽤 섹시하지 않으므로 결과를 클릭하여 메서드/테스트를 건너 뛸 수 없습니다.

또 다른 솔루션은 통합 할 플러그인을 개발하는 것입니다. 이클립스 PDT에 PHPUnit (Zend Studio 용으로 만들어진 것 같습니다. ppose) - phpunit4eclipse 몇 시간 전에 생성했지만, 그것은 단지 시작, 그리고 많은 succes에를하지 않았다, 그래서 저자는 그 해제 후 작동하지 않았다 ... 내가 this을 발견

+0

건배 @Pascal, 좋은 힌트지만 Zend도 Eclipse도 사용하지 않습니다 (저는 phpEd를 사용합니다). 마지막 업데이트를 구입 한 지 오래되었으므로 지금까지도이 정보가 지원 될 수 있습니다. 그래도 IDE 독립적 인 솔루션을 선호합니다. –

+0

당신을 환영합니다 :-) ;; 오, OK 다른 IDE에 대해서 ^^ –

+1

Netbeans에는 편리한 PHPUnit Runner GUI가있어 테스트 디버깅을 허용합니다. 이는 테스트가 불확실한 이유로 오류/오류가 발생했을 때 유용합니다. –

1

를 :

나는 PHPUnit에서 xml- 보고서를 작성한 다음이 XML을 사용하여 사용자 자신의 보고서를 작성하는 방법을 사용하여 Parth Patil의 게시물을 작성했습니다.

필자는 그의 솔루션을 사용하여 PHPUnit 3.4와 호환되며 일부 Reflection을 추가하여 테스트 케이스 문서 - 주석을 보고서에 표시했습니다.

1

이 좋아 당신이 독립 IDE의 솔루션을 선호이라고 말했다 : (참고 refelection를 들어 나는 Zend_Framework 반사 클래스를 사용), 그러나 너무 당신은 단순히 이클립스에 phpunit을 실행을 가능하게하는 최근의 플러그인이 알고, Zend Studio와 같이 멋진 표현을 가지고 있지만 무료입니다. 여기

는 당신은 문제가있는 경우 링크, 주요 developper이 너무 이메일에 빠른 응답입니다 :

http://www.phpsrc.org/wiki/

내가 PERSONNALY 일부 웹 인터페이스를 테스트를하지만, 난 항상 정말 practital하지 (속고있다 안정된). 그러나 이것이 당신의 선택입니다.

+0

건배 Matthieu, 나는 일식을 사용하지 않지만 이것은 여전히 ​​잘 알고 있습니다.+1 –

0

확실한 보고서 (mvn 사이트)를 사용할 수있는 Maven for PHP를 언제든지 사용할 수 있습니다. 자세한 정보는 여기를 참조하십시오 : http://www.php-maven.org

22

나는 당신 자신을 UI 사용자입니다. 터미널을 너무 오랫동안 보면서 내 머리가 회전합니다. 도움이 될만한 간단한 애플리케이션을 작성했습니다.

PHPUnit test application http://mattmueller.me/blog/wp-content/uploads/2010/06/test.png

여기에서 찾을 수 있습니다 : http://mattmueller.me/blog/introducing-phpunit-test-report

건배! 매트

최근 연구의 몇 시간 후
+6

Matt의 솔루션은 훌륭하고이 포크로 더욱 좋습니다. https://github.com/NSinopoli/VisualPHPUnit 위로 엄지! – Bruiser

+0

링크가 깨졌습니다 –

7

당신은 phpunit을 테스트를 포함하여 작업의 모든 종류를 실행하는 데 Jenkins를 사용했다있다. 자동으로 앱을 체크 아웃하고, 테스트를 실행하고, HTML 보고서를 작성하고, 빌드가 실패 할 경우 이메일을 보낼 수도 있습니다.

Here's the templates 프로젝트에서 흥미로운 보고서와 통계를 만들기 위해 Jenkins를 설정해야합니다.

Visual PHPUnit

매트의 @의 다음 반복 될 것으로 보인다 :

+0

+1 jenkins! – Matt

26

는 최근 명령 줄에서 phpunit을 실행하지 않는 모든 사람을위한 아주 아주 좋은 인터페이스처럼 보이는 Visual PHPUnit 발견 PHPUnit Test Report

+3

* pear * 설정없이 설치할 수 있습니까? – Fractaliste

1

jframework에는 PHPUnit을위한 멋진 UI가 있습니다. 결과를 깨고 모든 파일과 각 파일에 대한 테스트 적용 범위를 별도로 표시합니다. 그것은 웹과 cli 모두에서 작동합니다. cli one은 완료 후에 모든 테스트를 덤프 할 수있는 이점이 있습니다 (웹 기반 테스트가 끝날 때까지 기다려야 함).

General web output, with code coverage per file

Code coverage report for a single file

0

당신이 출력을 포맷에 대해 관심 단지 웹 페이지에서 phpunit을 실행하지 않으려면,이 같은 일부 PHP 코드를 수행 할 수 있습니다 :

<pre> 
<?php 
$argv[0] = "phpunit.phar"; 
$argv[1] = '--bootstrap'; 
$argv[2] = 'src/load.php'; 
$argv[3] = "tests/MoneyTest"; 
$_SERVER['argv'] = $argv; 
include 'phpunit.phar'; 
?> 
</pre> 

src/load.php 파일은 클래스를 포함하는 포함 된 묶음 일뿐입니다. 결과는 다음과 같습니다.

#!/usr/bin/env php 
PHPUnit 4.1.2 by Sebastian Bergmann. 

........................ 

Time: 122 ms, Memory: 3.25Mb 

OK (24 tests, 43 assertions) 

첫 번째 행을 무시하면 결과를 볼 수 있습니다.

PHPUnit에는 기본적인 방법이 포함되어 있지 않은 것에 놀랐습니다. 일부 클래스는 웹 서버에 종속 될 수 있습니다. 우리는 그걸 시험하지 않습니까? 일부 사이트에서는 파일을 업로드했지만 명령 줄 실행을 허용하지 않습니다.