egov

[5] eGovFramework 개발 환경 - Maven 빌드 및 Junit test

Boris 2025. 3. 13. 16:06

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