단위 테스트
- 익히 알려진 대로, 단위 테스트는 개별 소스 단위의 모듈/메소드 등이 원하는 대로 동작하는지 검증하는 테스트를 의미
- 따라서, 아래와 같이 외부 시스템이 포함되는 테스트의 경우, 원칙적으로는 단위 테스트로 보지 않음 (Working Effectively with Legacy Code, Michael C. Feathers)
- 데이터베이스에 하는 테스트
- 네트워크와 통신하는 테스트
- 파일 시스템에 하는 테스트
- 테스트를 실행할 때 추가적인 작업이 필요한 테스트 (설정 파일 수정 등)
- 단, 웹 개발 프로젝트 등에서 데이터베이스를 배제한 단위 테스트는 현실적으로 어려움
메이븐 SQL 플러그인 (sql-maven-plugin)
- execute Goal을 통해 파일에서 관리하는 모든 SQL 문을 실행할 수 있도록 지원
- 따라서, sql-maven-plugin을 plugin으로 등록하고, 설정을 통해 테이블 스키마를 생성하는 sql 파일을 매 빌드시 실행하게 하면, 모든 개발자간의 db를 일관되게 유지할 수 있음
- 주요 설정 값
- <execution>: 플러그인에 수행할 각 sql 구문들을 설정
- <execution> / <phase> : 구문을 어떤 메이븐 phase에서 수행할 지 설정
- <execution> / <goals> / <goal> : execute (SQL 수행)
- <execution> / <configuration> / <url> : DB 접근자
- <execution> / <configuration> / <autocommit> : commit 여부
- <execution> / <configuration> / <srcFiles> / <srcFile> : 수행할 SQL 구문 (file)
- <execution> / <configuration> / <sqlCommand> : 수행할 SQL 구문 (inline)
- 해당하는 DB에 대한 JDBC 드라이버를 <plugin>에 포함시켜야 함
Carbon Five Database Migration 플러그인
- 데이터베이스를 초기화하지 않고, 점진적으로 스키마를 변경해 나가면서 개발하는 것이 가능한 메이븐 데이터베이스 관련 플러그인
- http://mvn.carbonfive.com/public 원격 저장소를 추가해야 함
- /src/main/db/migrations 디렉토리에 날짜가 접두어로 붙는 .sql 파일을 생성
- Goal
- new : SQL 구문을 입력할 수 있는 파일을 생성해준다.
- new 를 통해 생성한 파일에 SQL 구문의 변경사항을 입력
- migrate
- db-migration 툴은 매 빌드시마다 현재 실행되지 않은 DB 구문만 실행시켜줌으로써 table을 모두 drop한 후 create 하는 것이 아니라, 일부 변경사항만 적용하는 것이 가능
출처: 자바 세상의 빌드를 이끄는 메이븐 (박재성 저)
'공부 > Maven' 카테고리의 다른 글
[서적 핵심 정리] 리포팅 기능을 활용한 문서 관리 (0) | 2013.04.07 |
---|---|
[서적 핵심 정리] Maven 프로파일, 배포 (0) | 2013.04.06 |
[서적 핵심 정리] Maven과 이클립스 통합 (0) | 2013.04.06 |
[서적 핵심 정리] Maven 의존 라이브러리 관리 (0) | 2013.04.06 |
[서적 핵심 정리] Maven 라이프사이클 (0) | 2013.04.06 |