[5] eGovFramework 개발 환경 - Maven 빌드 및 Junit test
1. Maven을 이용한 빌드 실습
목표 : 통합 빌드를 수행해보고 성공적인 빌드 결과를 확인
통합빌드 : 각 개발자들이 개인 빌드 과정을 거쳐 작성한 코드들을 통합하여 실행 가능한 산출물로 만들어 내는 일련의 과정
1. 앞서 세팅한 eclipse를 실행한 후 test한다.
- Existing Projects into Workspace 선택 후 egovgettingstarted.zip 선택한다.
2. package Explorer 확인
아래와 같이 프로젝트가 생성되면 import가 완료
2. 프로젝트 빌드
- 프로젝트 빌드를 하기 위해 egovframework.guide -> Maven build
- 여기서 User settings값이 잘 들어가있는지 확인한다.
3. Hello World 실행
- " Hello egov framework " 가 출력되는 것을 확인
4. HelloWorld 테스트 실행
- Maven build를 진행하고 HelloWorld까지 진행하였고, HelloWorld를 테스트하여 수행시간 및 성공여부를 확인해 볼 예정
- src/test/java 'HelloWorldServiceTest.java'에 우클릭 후 Run As - Junit Test
- 아래와 같이 HelloWorldServiceTest.java 파일은 org.junit.Assert와 org.junit.test등을 import하고 있으며 @Test로 메소드를 작성하면 java파일을 실행할 때 해당 메소드가 테스트의 main메소드가 된다.
즉, 아래에서 테스트 메소드는 testSayhello()이며, helloWorldService의 sayHello의 반환값이 있으면 테스트는 성공. ( 기대값과 출력값이 같으면 assertequal에 의해 반환된다. )
* 만약 JUnit테스트의 결과값을 알고 싶다면 아래와 같이 코드를 추가하면 된다.
< Maven Build시 Test가 안나오는 경우 >
1. pom.xml을 수정해야 한다.
- <skipTests>true</skipTests> 를 false로 바꿔주면 Test를 실행한 아래 화면을 볼 수 있다.
2. Maven 실행 시 -DskipTests 옵션 사용 유무
- mvn clean install -DskipTests : 테스트가 건너뛰어짐
- 해결방법
(1). mvn clean install
(2). mvn clean test
3. maven.test.skip=true 설정됨
- pom.xml
<properties> <maven.test.skip>true</maven.test.skip> </properties> : 테스트가 완전히 비활성화 된 상태
- 해결방법 : false로 수정
4. 테스트 코드가 없거나 @Test주석이 빠짐
(1) src/test/java 디렉토리에 테스트 코드가 있는지 확인
(2) JUnit 테스트 메서드에 @Test 어노테이션 빠졌는지 확인
- 해결 방법 : JUnit 테스트가 있다면 @Test 어노테이션을 추가하고 실행
5. maven-surefire-plugin 버전 문제
- pom.xml에서 maven-surefire-plugin이 최신 버전인지 확인
- 해결방법 : 3.0.0-M7으로 업데이트하고 다시 실행
< Maven build 수정 방법 >
- Run configuration