2008년 1월 1일 화요일

Common Lisp Testing Framework

어떤 프로그래밍 언어를 사용해서 프로그램을 하든 테스팅 프레임워크와 프로파일러는 필요하다. 커먼 리습의 테스팅 프레임워크들을 잘 정리해놓은 글이 있어 링크해본다. Common Lisp Testing Framework

lisp-unit은 사용법이 아주 간단할 뿐더러 문서화도 잘 되어 있다. 하지만 테스트를 조직화 할 수 있는 방법이 마땅치 않아서 간단한 테스트만을 필요로 할 때 적합하다고 한다. FiveAMStefil은 좀 더 스케일이 크고 조직화된 테스트에 적합하다고 한다.

1. lisp-unit 설치

lisp-unit은 원래 파일 하나로 배포되었지만, 2007년 1월 11일자로 asdf-install 가능하게 바뀌었다. 설치하려면 슬라임에서 다음과 같이 한다.

(require 'asdf-install)
(asdf-install:install 'lisp-unit)

2. FiveAM과 Stefil 설치

FiveAM과 Stefil을 설치하기 전에 해야 할 것이 두 가지 있다.

1. 다음과 같이 최신의 slime을 받아서 사용하는 것이 좋다.

cvs -d :pserver:anonymous:anonymous@common-lisp.net:/project/slime/cvsroot co slime

slime-2.0을 사용하면 컴파일이 제대로 되지 않는다.

2. slime이 위치한 디렉토리를 asdf:*central-registry*에 추가한다.
추가하지 않고 컴파일하면, FiveAM과 Stefil 둘 다 swank라는 것을 요구하는 것을 볼 수 있다. swank는 slime의 다른 이름이다. 리습구현의 스타트업 파일에(SBCL의 경우에는 홈 폴더의 .sbclrc 파일) 다음과 같이 slime이 위치한 디렉토리를 추가해주면 된다.

(push #p"/Users/chanwoo/cl-library/slime/" asdf:*central-registry*)

이제 준비가 되었으면 두 테스팅 프레임워크를 설치해보자.

1. FiveAM 설치
FiveAM은 asdf로 설치 가능하다. 다음과 같이 하면 설치 끝.

(require 'asdf-install) ;GPG체크 때문에 디버거로 떨어지면 0번을 눌러서 진행하면 된다.
(asdf:install-install 'fiveam)

2. Stefil 설치
먼저 iterate, alexandria, defclass-star를 설치해야 한다.
(require 'asdf-install)
(asdf-install:install 'iterate)
(asdf-install:install 'alexandria)

defclass-star는 다음과 같이 darcs로 내려받은 후,
darcs get http://common-lisp.net/project/defclass-star/darcs/defclass-star
폴더를 asdf:*central-registry*에 추가하면 설치 끝이다.

세 가지를 다 설치했다면, 이제 Stefil을 다음과 같이 내려받은 후,

darcs get http://common-lisp.net/project/stefil/darcs/stefil

해당 디렉토리를 asdf:*central-registry*에 추가하면 설치 끝.

설치가 끝나고 FiveAM이나 Stefil을 사용하려면 SBCL에서는 단순히,
(require 'fiveam) 또는 (require 'stefil) 로 충분하다.
SBCL외의 다른 구현을 사용한다면,
(asdf:operate 'asdf:load-op 'fiveam) 또는 (asdf:operate 'asdf:load-op 'stefil) 라고 하면 된다.

댓글 없음: