Spring MVC 어플리케이션을 위해 Jenkins를 이용해 CI 서버를 구축하고
Jenkins의 sonar 플러그인을 사용해 Sonar와 연결해 사용 중인데, sonar에서 실행하는
Unit test가 알수 없는 이유로 실패를 한다.
정확히는 sonar 에서 unit test를 위해 돌리는 cobertura 라는 놈이 문제인 듯… 한데…
java.lang.IllegalStateException: Failed to load ApplicationContext
Expecting a stackmap frame at branch target 47 in method z.y.x.controller.TestController.list(Lorg/springframework/ui/Model;)Ljava/lang/String; at offset 17등의 에러가 발생한다. Jenkins에서 자체적으로 돌리는 Unit test는 문제가 없는걸로 봐서Jenkins나 JUnit의 문제는 아닌 듯하고..어째든 구글신께 열심히 물어본 결과, maven plugin 중에 surefire 라는 놈이 관련이 있는 듯하다.maven의 pom.xml에 다음을 추가해 주고 빌드를 돌리니 문제가 없다.
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.12</version> <configuration> <argLine>-XX:-UseSplitVerifier</argLine> </configuration> </plugin>