일단, 기본적으로 정보를 얻을 수 있는 곳은 PHPUnit Support in Eclipse다.
컴퓨터에 PHPUnit가 기본적으로 설치돼 있어야 한다.
이클립스에서 PHPUnit은 플러그인으로 설치하는 게 아니다. 실행환경으로 사용한다.
(이 방법 말고 다른 방법도 있는 것 같긴 하다. 플러그인은 아니지만 GUI를 제공해 주는 것 같다. phpunit4eclipse라는 프로젝트다.)
외부 실행환경 설정을 통해 금방 해결할 수 있다.
메뉴에서… Run > External Tools > External Tools Configuration 을 선택해서 들어간다.
왼쪽 상단의 New launch configuration 을 누른다.
그러면 아래 같은 창이 뜨는데, 적절히 내용을 채운다.
우분투의 경우 위와 똑같이 써 주면 된다. 참 쉽다.(수정사항 있다. Arguments는 ${workspace_loc}${resource_path} 라고 써야 한다.)
Name 은 이름이다. 자유롭게 붙이면 된다. 당연히 PHPUnit 으로 붙이는 게 나을 거다.
Location 은 PHP 실행파일의 위치다. 우분투는 /usr/bin/php5 다.
Working Directory 는 PHPUnit을 어떤 프로젝트에 적용할 거냐는 거다. Variables 에서 workspace_loc 를 선택해 주거나 그냥 ${workspace_loc} 이라고 써 주면 된다.
Arguments 는 PHPUnit을 실행해 주는 명령문인데, PHPUnit의 실행파일명 뒤에 ${workspace_loc}${resource_path}를 붙여서 쓴다.
우분투는 /usr/bin/phpunit ${workspace_loc}${resource} 다.
(이런 변수들에 대한 설명은 여기서 볼 수 있다. ${workspace_loc}${resource}는 선택하고 있는 파일의 절대경로를 리턴한다.)
Run을 눌러 보자. ㅋ 만약 PHPUnit 테스트용 파일이 열려있는 상태라면 콘솔에서 테스트 결과를 볼 수 있을 것이다.
오류
만약 “Variable references empty selection: ${resource_path}” 같은 오류상자가 뜬다면, 왼쪽 프로젝트 익스플로러에서 파일을 선택하지 않았기 때문에. PHPUnit을 실행하기 전에 프로젝트 익스플로러에서 파일을 선택해 주자.
혹은 콘솔에 “Argument #1 of PHPUnit_Util_Fileloader:checkAndLoad() is no existing file” 라는 에러 메시지가 나온다면 경로가 제대로 안 잡힌 거다. ${workspace_loc}${resource_path}에 오타는 없는지 찾아 보라.
아마도 class명과 파일명을 일치시켜야 하는 듯하다. 아닐 수도 있다. 확인해 보고 정확하게 쓰겠다.
그리고 파일을 테스트하려면 Run > External Tools > PHPUnit 을 선택하면 된다. 그러면 콘솔이 뜨고 테스트가 된다.
뭔가 테스트하고 싶은 분들은 아래 코드를 긁어서 ArrayTest.php 를 만들고 직접 테스트해 보기 바란다.
require_once '/usr/share/php/PHPUnit/Framework.php'; class ArrayTest extends PHPUnit_Framework_TestCase { public function testNewArrayIsEmpty() { // Create the Array fixture. $fixture = array(); // Assert that the size of the Array fixture is 0. $this->assertEquals(0, sizeof($fixture)); } public function testArrayContainsAnElement() { // Create the Array fixture. $fixture = array(); // Add an element to the Array fixture. $fixture[] = 'Element'; // Assert that the size of the Array fixture is 1. $this->assertEquals(1, sizeof($fixture)); } }
참고로 맨 위의 require_once 에는 실제 경로를 넣어 줘야 한다. 위 경로는 우분투를 기준으로 한 경로다.
댓글 남기기