달력

102019  이전 다음

  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
JUnit을 이용한 테스트케이스를 실행한 결과를 api형태의 보고서로 또는 그래픽으로 비주얼하게 보여줄 수 있습니다.

http://www.okjsp.pe.kr/docs/report 에서 확인할 수 있습니다.

아울러 hudson에서도 다른 형태의 리포트가 나옵니다.
우측 상단의 파란색 그래프입니다.

더 자세한 정보도 볼 수 있습니다.

http://www.okjsp.pe.kr:8080/job/okjsp%20site%20build/

아주 오래 미뤄왔던 일을 해내었습니다. 이제 버그 잡아야겠습니다.
Posted by 케누 kenu허광남

댓글을 달아 주세요

  1. Kenny  댓글주소 수정/삭제 댓글쓰기 2009.06.15 17:13

    여전하시네요. ^^ 화이팅!

  2. Richpapa  댓글주소 수정/삭제 댓글쓰기 2010.01.12 17:02 신고

    안녕하세요. 요즘 아이폰과 안드로이드에 관심이 많은지 알고 있습니다. 그래도 질문 좀 할께요.

    ANT 파일에 JUnit을 설정하고(성공), JUnit report 작성중에 있습니다. JUnit Report를 하기 위해서 일부러 에러를 냈습니다. 간단한 테이블에 로우수가 5개인데, 4개로만 어썰트 했기에 에러가 납니다.

    junit.framework.AssertionFailedError: expected:<4> but was:<5>

    1. 일단, 임으로 에러를 냈기 때문에 ANT 파일 돌리니까, 다음과 같은 결과가 나옵니다.

    junit report:
    [mkdir] Created dir: D:\WORKSPACE\PRIVATE\JdbcTemplate Snapshot\report\html
    [junit] Running test.step1.DaoTest
    [junit] Tests run: 4, Failures: 1, Errors: 0, Time elapsed: 1.234 sec

    BUILD FAILED
    D:\WORKSPACE\PRIVATE\JdbcTemplate Snapshot\build.xml:36: Test test.step1.DaoTest failed

    JUnit Report 생성 디렉토리로 가보니 html안에 파일 생성되지 않습니다. (물론 에러를 안내고 JUnit을 통과하면 생성이 되고요)

    어떻게 하면 생성이 될까요?

    2. 만일 생성이 되지 않는다면 JUnit Report를 만들 의미가 없는 것 같은데... 물론 그렇지 않겠지만... 잘 안되네요.

    • 케누 kenu허광남  댓글주소 수정/삭제 2010.01.12 17:41 신고

      <!-- ==================== test Target ==================================
      -->
      <target name="test" depends="publish">
      <mkdir dir="report" />
      <junit printsummary="on" haltonfailure="off">
      <classpath refid="test.classpath" />
      <formatter type="xml" />
      <batchtest todir="report">
      <fileset dir="dst_test">
      <include name="**/*Test*" />
      </fileset>
      </batchtest>
      </junit>
      <mkdir dir="${publish.home}/docs/report" />
      <junitreport todir="report">
      <fileset dir="report">
      <include name="TEST-*.xml" />
      </fileset>
      <report format="frames" todir="${publish.home}/docs/report" />
      </junitreport>
      </target>

      haltonfailure="off" 이 옵션때문이 아닐까요?

  3. Richpapa  댓글주소 수정/삭제 댓글쓰기 2010.01.12 19:19 신고

    먼저 답변 주셔서 고맙습니다. 저는 on으로 되어 있습니다.

Hudson 업그레이드

java 2008.11.26 15:57
Hudson 메인 페이지의 Manage Hudson 메뉴로 이동하면 신규 버전 알림이 노란 줄로 뜹니다. download 링크를 클릭하면 바로 다운 받을 수 있죠. 그리고 플러그인의 업데이트는 Manage Plugins 설명에 (updates available) 이라고 빨간 글씨로 보입니다.


Manage Plugins로 가면 Updates 탭에 해당 플러그인이 보입니다. 체크하고 우측 하단의 Install 버튼을 클릭하면 업데이트가 진행됩니다. 

대체로 설치 후에 hudson을 재시작해줘야 됩니다.



그리고 다른 얘기인데, findbugs 플러그인에서 보여주듯이 okjsp사이트의 버그는 다 잡았습니다. 냐호~



Posted by 케누 kenu허광남

댓글을 달아 주세요

  1. ncrash  댓글주소 수정/삭제 댓글쓰기 2008.11.26 16:20

    벌레 숙청하셨군요 ㅊㅋㅊㅋ

    문득 세스코가 생각나는데요 ㅎㅎ

  2. Kenny  댓글주소 수정/삭제 댓글쓰기 2008.11.26 16:46

    보통은... CheckStyle 보다 PMD 가 에러가 적게 잡혀요..
    PMD는 기본 옵션이 적은 편이라..
    PMD 먼저 하시고 CheckStyle 하시거나...
    코드 스타일에 너무 신경 안쓰시고 싶으시면 PMD 만으로도 충분해요.

  3. Herlock  댓글주소 수정/삭제 댓글쓰기 2008.11.27 10:14

    너무 옛날버전을 사용하고 있어서 그런지 업그레이드 메뉴가 안뜨네요 ㅎㅎ
    설정이랑 페이지 좀 수정한거 저장하고 통째로 엎어야 겠군요 ㅎㅎ

hudson의 최상위 페이지의 메뉴 "Manage Hudson(Hudson의 관리)" 메뉴로 갑니다.

Manage Plugins 를 선택하고, Available탭에서 findbugs 플러그인을 설치합니다.

hudson을 콘솔에서 재시작하고, 프로젝트의 configure 메뉴에 가면 findbugs 활성화 체크박스가 하단에 보입니다. 체크하면 hudson에서 findbugs 플러그인이 활성화됩니다.

Build 섹션에서 Add Build Step버튼을 클릭해서 findbugs 빌드를 추가합니다. 빌드서버에 설치된 findbugs 경로를 findbugs.home 에 지정합니다. 환경변수에 $FINDBUGS_HOME으로 지정되면 이 과정이 필요없습니다.

build.xml 의 findbugs 타겟 소스는 참고로 다음과 같습니다.
    <taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask"/>
   <target name="findbugs">
      <findbugs home="${findbugs.home}"
                output="xml:withMessages"
                outputFile="findbugs.xml" >
        <sourcePath path="${basedir}/src" />
        <class location="${publish.home}/WEB-INF/classes" />
      </findbugs>
    </target>

콘솔에 다음과 같은 메시지가 찍히면서 findbugs에 대한 보고서를 확인할 수 있습니다.

참조하는 jar파일의 경로가 지정되지 않으면 이런 메시지가 나타납니다.

 [findbugs] The following classes needed for analysis were missing:
[findbugs]   javax.servlet.http.HttpServlet
[findbugs]   javax.servlet.Servlet

findbugs 태스크에 다음과 같은 jar경로가 있는 줄을 추가하면 위 경고가 해결됩니다.
      <findbugs home="${findbugs.home}"
                output="xml:withMessages"
                outputFile="findbugs.xml" >
       <auxClasspath path="${catalina.home}/common/lib/servlet-api.jar" />
        <sourcePath path="${basedir}/src" />
        <class location="${publish.home}/WEB-INF/classes" />
      </findbugs>


버그의 추이가 그래프로 나타납니다.

버그의 자세한 리포트는 프로젝트 왼쪽 메뉴의 FindBugs Warnings 를 통해서 확인가능합니다.

이제 남은 일은 버그의 수를 줄이는 것이겠죠.
Posted by 케누 kenu허광남

댓글을 달아 주세요

  1. ncrash  댓글주소 수정/삭제 댓글쓰기 2008.11.27 17:03

    어제 세미나 듣고 바로 적용해봤어요 잘 되네요^^;

    약간의 삽질끝에 적용해보니 250개의 warring이 ㅎㄷㄷ

    또 하나 배우고 가네요 항상 감사합니다

허드슨 강의하면서 배경지식으로 설명했던 지속적인 통합의 팀 적용에 관한 이야기입니다.

위 링크에 첨부파일로 올려놓았습니다.

관련 마인드맵은 이전 블로그에 올려놓았습니다.

Posted by 케누 kenu허광남

댓글을 달아 주세요

  1. [짱가™]  댓글주소 수정/삭제 댓글쓰기 2008.11.18 13:43 신고

    형~~~ http://www.xmind.net/ 얘 좋은 것 같아요~~~
    무료로는 FreeMind 보다는 훨씬 많은 기능을 제공해 주는 것 같구요.

    회원가입을 하면 온라인에서 마인드맵을 공유할 수 있으며 프로 계정(49불/년)의 경우 프레젠테이션, 마이크로소프트 오피스 등을 지원한데요~~

okjsp 세미나 자료

java 2008.11.15 16:07
Hudson을 이용한 프로젝트 모니터링

Continuous Integration in Practice


http://freemind.sf.net 형식의 파일입니다.

Posted by 케누 kenu허광남

댓글을 달아 주세요

  1. 박현준  댓글주소 수정/삭제 댓글쓰기 2008.11.16 12:52

    어제 세미나 잘 들었습니다.
    끝나고 잡다한 이야기를 나누고 싶었는데 아쉽게도 1시에 다른 강의를 들으러 가야해서 끝나고 바로 가버렸어요.
    다음 세미나에서 또 뵙죠 :-)

  2. 아이  댓글주소 수정/삭제 댓글쓰기 2008.11.17 18:19

    좋은 자료 감사합니다. 세미나도 잘 들었습니다.^^

지속적인 통합 빌드에서 crontab 처럼 주기적으로 빌드가 돌게 할 수 있습니다. 아래는 10분 주기로 실행하도록 한 결과입니다. trend 링크를 누르면 다음과 같이 그래프로도 확인이 가능합니다.

빌드의 실행 시점은 다음과 같이 정할 수 있습니다. 우측의 ? 아이콘을 클릭하면 해당항목에 대한 설명이 보이게 됩니다. 빌드에는 분 시간 일 월 요일 5가지 설정을 하게 됩니다. 매 10분마다 설정하려면 0,10,20,30,40,50 처럼 공백없이 분을 나열하고 이후 4항목을 * * * * 로 채우면 됩니다.

빌드 로그가 많이 남을까봐 Discard Old Builds처럼 옛날 빌드기록을 삭제할 수 있습니다. 7일간 최대 200개의 빌드기록을 보관한다는 의미입니다.


소스코드를 가져오는 방법은 다음과 같습니다. CVSROOT를 적어주면 됩니다. 아이디와 패스워드가 노출되는데, 인트라넷용이라는 전제가 있습니다. 또한 빌드전용 CVS아이디를 만들어 주는 것도 괜찮을 것입니다.

간략하게 hudson의 설정에 대해서 살펴보았습니다.





Posted by 케누 kenu허광남

댓글을 달아 주세요

  1. yeoupooh  댓글주소 수정/삭제 댓글쓰기 2008.11.13 16:34 신고

    hudson 정말 잘 만들어진 툴이죠. jabber plugin 설치하시고 google talk 설정해 놓으면 빌드 끝나고 메신저로 날려주는데, 전 이게 맘에 들드라구요. ^^

hudson download

java 2008.11.10 22:21

최신버전에 대한 permalink 가 있군요.
http://hudson.gotdns.com/latest/hudson.war 
현재 1.260 버전이 최신입니다.


wget으로 받으려했는데, https로 포워딩되는군요. 바뀌 주소에 --no-check-certificate 옵션을 주어서 받았습니다.

[hudson@169s /home/hudson]# ls -altr
합계 20
-rw-r--r--    1 hudson   hudson        411 11월 10 22:03 .bashrc
-rw-r--r--    1 hudson   hudson        250 11월 10 22:03 .bash_profile
-rw-r--r--    1 hudson   hudson         25 11월 10 22:03 .bash_logout
drwxr-xr-x   10 root     root         4096 11월 10 22:03 ../
drwx------    2 hudson   hudson       4096 11월 10 22:03 ./
[hudson@169s /home/hudson]# wget http://hudson.gotdns.com/latest/hudson.war
--22:05:57--  http://hudson.gotdns.com/latest/hudson.war
           => `hudson.war'
Resolving hudson.gotdns.com... 192.18.49.133
Connecting to hudson.gotdns.com|192.18.49.133|:80... connected.
HTTP 요청을 보냅니다, 서버로부터의 응답을 기다림...302 Found
장소: https://hudson.dev.java.net/files/documents/2402/116126/hudson.war [following]
--22:05:59--  https://hudson.dev.java.net/files/documents/2402/116126/hudson.war
           => `hudson.war'
Resolving hudson.dev.java.net... 204.16.104.198
Connecting to hudson.dev.java.net|204.16.104.198|:443... connected.
ERROR: Certificate verification error for hudson.dev.java.net: unable to get local
issuer certificate
To connect to hudson.dev.java.net insecurely, use `--no-check-certificate'.
Unable to establish SSL connection.
[hudson@169s /home/hudson]# wget --no-check-certificate  https://hudson.dev.java.net/files/documents/2402/116126/hudson.war
--22:07:28--  https://hudson.dev.java.net/files/documents/2402/116126/hudson.war
           => `hudson.war'
Resolving hudson.dev.java.net... 204.16.104.198
Connecting to hudson.dev.java.net|204.16.104.198|:443... connected.
WARNING: Certificate verification error for hudson.dev.java.net: unable to get local
issuer certificate
HTTP 요청을 보냅니다, 서버로부터의 응답을 기다림...200 OK
길이:   20,804,156 (20M) [text/plain]
[========================================>] 20,804,156   790.53K/s    ETA 00:00
22:08:08 (724.78 KB/s) - `hudson.war' saved [20804156/20804156]


실행은 간단히 됩니다.
java -jar hudson.war


[hudson@169s /home/hudson]# java -jar hudson.war
[Winstone 2008/11/10 22:13:48] - Beginning extraction from war file
[Winstone 2008/11/10 22:13:55] - No webapp classes folder found - /home/hudson/.hudson/war/WEB-INF/classes
hudson home directory: /home/hudson/.hudson
2008. 11. 10 오후 10:13:59 hudson.model.Hudson load
정보: Took 219 ms to load
2008. 11. 10 오후 10:14:00 hudson.TcpSlaveAgentListener <init>
정보: JNLP slave agent listener started on TCP port 48801
2008. 11. 10 오후 10:14:02 org.springframework.context.support.AbstractApplicationContext prepareRefresh
정보: Refreshing org.springframework.web.context.support.StaticWebApplicationContext@1a9d1b: display name [Root WebApplicationContext]; startup date [Mon Nov 10 22:14:02 KST 2008]; root of context hierarchy
2008. 11. 10 오후 10:14:02 org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory
정보: Bean factory for application context [org.springframework.web.context.support.StaticWebApplicationContext@1a9d1b]: org.springframework.beans.factory.support.DefaultListableBeanFactory@146e381
2008. 11. 10 오후 10:14:02 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
정보: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@146e381: defining beans [filter,legacy]; root of factory hierarchy
[Winstone 2008/11/10 22:14:02] - HTTP Listener started: port=8080
[Winstone 2008/11/10 22:14:02] - AJP13 Listener started: port=8009
[Winstone 2008/11/10 22:14:02] - Winstone Servlet Engine v0.9.10 running: controlPort=disabled

결과는 다음과 같이 볼 수 있습니다.


job 을 죠브라고 번역해 놓았네요. 구글 번역기 짓인가요? ^^; 리포팅해야할 듯 합니다. 일본 개발자인 Kohsuke님에게 보내면 되겠지요.
Posted by 케누 kenu허광남

댓글을 달아 주세요

  1. 찬욱  댓글주소 수정/삭제 댓글쓰기 2008.11.10 23:36

    재밌는 이름이네요, 죠브^^.

  2. HannaKim  댓글주소 수정/삭제 댓글쓰기 2008.11.11 00:37 신고

    김성훈입니다. 현재 Hudson의 한글 담당으로 최근에 일하기 시작했습니다. 지금 "죠브"를 포함하여 이상한 표현들을 수정하고 있습니다. 의견있으시면 hunkim@gmail.com 으로 연락주세요.

    • 케누 kenu허광남  댓글주소 수정/삭제 2008.11.11 19:49 신고

      에이콘 블로그에서 뵈었는데, 여기까지 왕림하셨군요. 반갑습니다. 그리고 허드슨 한글화하신다니 부지런하십니다.
      저도 접한지 얼마 되지 않아서 자주 사용하면서 발견하면 알려드리겠습니다.
      행복하세요. ^^

프로젝트 모니터링이라고 제목을 정한 이유는 Continuous Integration 은 평소 잘 하라는 의미입니다. 빅뱅통합이라고 하는 프로젝트 오픈 직전의 코드 통합은 전장을 방불케합니다. 평소에 만들어지는 코드에 대한 건강진단은 프로젝트가 산으로 가는 것을 막아줍니다. 그리고 버그가 숨어있을 여지도 줄여줍니다.

이번 세미나는 hudson을 중심으로 프로젝트의 건강상태를 모니터링할 수 있는 방법에 대해서 공유하려고 합니다.

소스 코드 공유
 - SVN,CVS
 - 저장소의 무결성
빌드서버
 - only for application source codes
Hudson
 - Continuous Integration Tools
 - Build Automation
 - Plugins
Project Report
 - JUnit
 - FindBugs
 - Checkstyle
 - PMD


강사: 허광남 okjsp운영자

장소: 아트레온 토즈 (신촌역 4번출구 아트레온극장 14층)
약도: http://www.toz.co.kr/v2/01about/pop_map_art.gif

일시: 2008/11/15 토 오전 10:00~12:00

회비: 20,000원 (당일 접수, 영수증 가능)

인원: 선착순 25명

 

메일로 신청받습니다.

kenu 골뱅 okjsp.pe.kr

 

이름:

닉네임:

이메일:

휴대폰:

 

본 강의는 실습강의가 아닙니다.

 

Posted by 케누 kenu허광남

댓글을 달아 주세요

자바지기 스터디 모임 강의 자료

사용자 삽입 이미지

Posted by 케누 kenu허광남

댓글을 달아 주세요

http://www.okjsp.pe.kr 에서 주최한 부산세미나입니다.

주제는 프로젝트 에코시스템; 개발환경 효율적 개선이고, 중앙 ITEA 부산 서면센터에서 열렸습니다.

강대권님이 subversion, trac, CI 등에 대해 발표하신 동영상입니다.

Posted by 케누 kenu허광남

댓글을 달아 주세요

  1.  댓글주소 수정/삭제 댓글쓰기 2008.05.01 23:56

    비밀댓글입니다

  2. ncrash  댓글주소 수정/삭제 댓글쓰기 2008.05.02 00:39

    동영상 다 보고나니 제가 미처 인지하지 못한 문제가 많이 보이네요^^;


    개선이 시급해 보입니다 끄응~~;;