SlideShare a Scribd company logo
Jenkins
for Javascript Development Env.
About me


              윤지수
   aniga75@gamil.com
지속적인 통합
> 품질,안전성
지속적인 통합
: continuous integration (CI)

1.   Watch code
2.   Build Project
3.   Run Tests
4.   Publish Results
첫째.
CI? Jenkins?
Jenkins vs. Hudson




Java.net을 사용하던 Hudson은 SUN이 Oracle에 인수된 이후
Oracle의 ‘Hudson’상표권 주장으로 Jenkins으로 분리
Jenkins vs. Hudson




비슷하다 (설정, 플러그인 등)
Jenkins 의 실체


: jenkins.war + web server
Jenkins 의 실체
둘째.
Jenkins 해보기
오해
CI 구축은 어렵다
Javascript 프로젝트의 CI구축은 더 어렵다
CI 운영비용은 비싸다
CI는 규모가 있는 프로젝트에서만 하는 것이
다
Today’s Goal?
: Javascript CI 환경 만들기
  Jenkins와 함께 쉽게 !
할 짓 요약
Jenkins 설치
소스 보관소 연동
코드가 좋은 코드인지 확인
코드가 잘 돌아가는 건지 확인
코드량이 얼마인지 확인
Jenkins 설치




   소스 보관소 연동                  Github




                              JSLint

코드가 좋은 코드인지 확인

                   JSLint 결과 Jenkins에서 시각화




                     Testing framework : Qunit




                    테스트 자동화 : JsTestDriver

코드가 잘 돌아가는 건지 확인

                    코드 커버리지: jscoverage

                                                 Test결과(jUnit test result Plugin)
                   테스트 결과를 jenkins에서 시각
                                화
                                                 Coverage 결과(cobertura Plugin)

 코드량이 얼마인지 확인              N’Siq Plugin
이런 젠장, 뭔가
복잡해..

다.. 기억하지
않으셔도 되요.
Jenkins설치
   1.Download
Jenkins설치
   2. install
Jenkins설치

   3. Window service
Jenkins설치
  4. Browser 확인
Jenkins설치
  5. Jenkins Plugins 설치 방법
Jenkins설치


  6. 새로운 프로젝트 생성!
Jenkins설치
  6. 새로운 프로젝트 생성!
Jenkins설치
  6. 새로운 프로젝트 생성!
Git 연동

 1. Download github plugin




 2. local 에 git 설치
  http://git-scm.com/downloads



 3. Jenkins 설정 - git
Git 연동
 project에 설정하기
Git 연동
 확인하기
JSLint 연동

 연동 방법 개요

 1.   JSLint의 Java버전을 다운로드
 2.   Jenkins에 Ant 빌드 스크립트로 실행
 3.   Jenkins에서 그래프로 보여주기 위해서 Violations Plugin설치
 4.   Build
JSLint 연동

 1. Download JSLint4Java
  http://code.google.com/p/jslint4java/downloads



 2. Ant Build 파일 만들기
   Jekins/workspace/{projectname}/build.xml

   <target name="jslint" description="run the JSLint tool on JS files">
     <fileset dir="." id="jsfiles.raw">
              <include name="src/*.js" />
              <exclude name="src/*.min.js" />
     </fileset>
     <pathconvert pathsep=" " property="jsfiles.clean" refid="jsfiles.raw" />
     <exec executable="java" output="build/jslint.xml">
                <arg line="-jar ../../lib/jslint4java.jar --report xml ${jsfiles.clean}" />
     </exec>
   </target>
JSLint 연동

 3. project 설정에 추가하기
JSLint 연동
 4. 확인 (result.xml)
JSLint 연동
 5. Jenkins 그래프로 보기 – violations plugin 설치




 6. Jenkins 그래프로 보기 – project 설정
JSLint 연동
 7. Jenkins 그래프로 보기 – 빌드 그리고 확인(1)




 70개의 문제가 발견 됨을 표시하고 있음
JSLint 연동
 7. Jenkins 그래프로 보기 – 빌드 그리고 확인(2)




 파일별로 오류 내용을 확인 할 수 있음
JsTestDriver 연동

 연동 방법 개요

 1.   JsTestDriver.jar , JsTestDriver-Qunit adaptor, jscoverage 다운로드
 2.   JsTestDriver.conf 설정
 3.   Ant 빌드 스크립트 작성
 4.   JsTestDriver Running
 5.   테스트 결과를 그래프로 보기 위한 설정(jUnit test result report)
 6.   커버리지 결과를 그래프로 보기 위한 설정(cobertura Plugin설치)
 7.   Cobertura Plugin에서 지원되는 xml타입으로 coverage결과를 변환
JsTestDriver 연동

  1. 다운로드 : JsTestDriver , JsTestDriver-Qunit adaptor, jscoverage
  JsTestDriver.jar ,jscoverage.jar
  http://code.google.com/p/js-test-driver/downloads/list


  JsTestDriver-Qunit.jar
   https://github.com/exnor/QUnit-to-JsTestDriver-adapter/downloads
  # http://code.google.com/p/js-test-driver/wiki/QUnitAdapter 이걸 받으면 안됨(qunit변경 메소드 반영 안됨)
JsTestDriver 연동

  2. JsTestDriver.conf 설정
  server: http://localhost:4224

  load:
    - lib/qunit.js
    - lib/qunit_jstestdriver_adaptor/equiv.js                                          //qunit adaptor
    - lib/qunit_jstestdriver_adaptor/QUnitAdapter.js                                   //qunit adaptor
    - lib/jindo.desktop.all.js
    - src/*.js
    - lib/*.js
    - spec/testcode.js

  serve:
  - spec/test.html
    - lib/qunit.css

  plugin:
    - name: "coverage"
      jar: "lib_etc/coverage.jar"
      module: "com.google.jstestdriver.coverage.CoverageModule"


  # jstestdriver configuration : http://code.google.com/p/js-test-driver/wiki/ConfigurationFile
JsTestDriver 연동

  3. 잠깐! JsTestDriver는 CI와 별개로 별도로 달리고 있어야 함

  C:coderunjenkinsworkspacejenkins-test> java -jar JsTestDriver.jar --port 4224




      Jenkins 설치       Git 연동         JSLint 연동      jsTestDriver 연동      LOC
JsTestDriver 연동

  4. Ant Build 실행

  C:coderunjenkinsworkspacejenkins-test> java -jar JsTestDriver.jar --port 4224

   <target name="jstestdriver" depends="jslint" description="build jstestdriver">
                  <echo>build jstestdriver</echo>
                  <exec executable="java">
                             <arg line="-jar" />
                             <arg path="../../lib/jsTestDriver.jar" />
                             <arg value="--server"/>
                             <arg value="http://localhost:4224"/>
                             <arg value="--tests"/>
                             <arg value="all"/>
                             <arg value="--testOutput"/>
                             <arg value="./build"/>
                             <arg value="--reset"/>
                  </exec>
   </target>
   # jstestdriver command line flags : http://code.google.com/p/js-test-driver/wiki/CommandLineFlags
JsTestDriver 연동
  5. 지금까지 Ant Build
  <target name="jslint" description="run the JSLint tool on JS files">
    <fileset dir="." id="jsfiles.raw">
             <include name="src/*.js" />
             <exclude name="src/*.min.js" />
    </fileset>
    <pathconvert pathsep=" " property="jsfiles.clean" refid="jsfiles.raw" />
    <exec executable="java" output="build/jslint.xml">
               <arg line="-jar ../../lib/jslint4java.jar --report xml ${jsfiles.clean}" />
    </exec>
  </target>

  <target name="jstestdriver" depends="jslint" description="build jstestdriver">
            <echo>build jstestdriver</echo>
            <exec executable="java">
                      <arg line="-jar" />
                      <arg path="../../lib/jsTestDriver.jar" />
                      <arg value="--server"/>
                      <arg value="http://localhost:4224"/>
                      <arg value="--tests"/>
                      <arg value="all"/>
                      <arg value="--testOutput"/>
                      <arg value="./build"/>
                      <arg value="--reset"/>
            </exec>
  </target>
JsTestDriver 연동

  6. Build !

  테스트 결과 : TEST-Chrome_210118083_Windows.DefaultaModule.xml
  테스트 커버리지 : jsTestDriver.conf-coverage.dat
JsTestDriver 연동

  7. 테스트 결과를 그래프로 보기 위한 projcet 설정(jUnit test result report)

  동작 방식 : ‘TEST-Chrome_210118083_Windows.DefaultaModule.xml’ 파일을 분석해서 결과를 보여줌.
JsTestDriver 연동

  8. Build 후 확인
JsTestDriver 연동

  8. 커버리지 결과를 그래프로 보기 위한 설정(cobertura Plugin설치)




  9. Cobertura Plugin에서 지원되는 xml타입으로 coverage결과를 변환
   jsTestDriver.conf-coverage.dat 파일을 Cobertura지원 xml 타입으로 변환하기 위해 python 오픈소스 script를 활용

   • 먼저 Local 에 Python 설치: http://www.python.org/getit/
   • Cobertura 변환 Python script 다운로드 : https://github.com/eriwen/lcov-to-cobertura-xml
   • 실행 : Jenkins Python Plugin을 통해서 script를 실행 할 수 있지만, 윈도우에서 Python 실행 PATH를 인식하지 못하는
     문제 발견. 대안으로 Ant build로 실행하고 exeutable에 절대경로를 입력
    <다음장에서 Ant build 설정>
JsTestDriver 연동

  9. Cobertura Plugin에서 지원되는 xml타입으로 coverage결과를 변환
  Ant build에 python script 실행 추가

  <target name="start" depends="jstestdriver" description="build python script">
            <echo>build python for making cobertura xml</echo>
            <exec executable="C:Python27python.exe" failonerror="true">
                      <arg value="lib_etc/lcov-to-cobertura-xml.py" />
                      <arg value="build/jsTestDriver.conf-coverage.dat" />
                      <arg value="-o"/>
                      <arg value="build/coverage.xml"/>
            </exec>
  </target>
JsTestDriver 연동

  10. Project 설정에 corbetura 추가
JsTestDriver 연동
  1. Build 후 coverage 결과 확인
LOC 연동
 1. LOC(Line of Code)
  NHN Opensource 활용 : https://wiki.jenkins-ci.org/display/JENKINS/NSIQ+Collector+Plugin
  복잡도,LOC를 계산해주지만 LOC만을 활용




  2. project 설정
LOC 연동
 3. Build 후 확인
Complete!
Jenkins를 활용한 javascript 개발
좀 더 해야 할 것
Jstestdriver
test code에서 외부 라이브러리를 사용하는 경우 에러가 발생. Js파일을 로딩하는데 문제가 있음 (require.js와
같은 것으로 동적로딩 필요)



복잡도, 중복코드 검사
Cyclomatic complexity 나 중복코드 검사 Plugin 연동 Reporting



Other Testing
Selenium, WebDriver, or PhantomJS
Mobile 환경 테스트


Other CI (Travis CI)
Github 와 찰떡 궁합으로 경량화된 CI
http://blog.outsider.ne.kr/779
http://tech.qmetric.co.uk/automating-javascript-ci-with-buster-js-and-travisci_205.html
Appendix.       Inside NHN 품질관리
Hudson 기반의 Quality Practice 활동
http://book.naver.com/bookdb/book_detail.nhn?bid=6349938 (book)

JSLint Cyclomatic Complexity, Coverage 통합 자체 Plugin 개발
Selenium 활용한 UI Test 자동
http://helloworld.naver.com/helloworld/87523
http://www.slideshare.net/jscamp_kr/jscamp-hannam-qunit-test-automation-using-hudson-and-selenium

Dashboard, JIRA 연동
중복코드 검사
기타 프로젝트별 Build에 필요한 Hudson Plugin개발
참고
http://wiki.hudson-ci.org/display/HUDSON/Plugins
http://stephen.rees-carter.net/2011/05/jenkins-ci-jslint-javascript-quality-checking/
http://eriwen.com/tools/continuous-integration-for-javascript/
http://hudson-ci.org/download/plugins/
http://mirrors.jenkins-ci.org/
http://code.google.com/p/jslint4java/downloads
http://meri-stuff.blogspot.kr/2012/01/javascript-testing-with-jstestdriver.html
http://code.google.com/p/js-test-driver/wiki/
http://pseudobry.com/js-test-driver-qunit-coverage-requirejs/
https://github.com/youzee/tips-n-tricks/wiki/The-JavaScript-testing-stack
http://www.python.org/getit/
https://wiki.jenkins-ci.org/display/JENKINS/NSIQ+Collector+Plugin
http://pseudobry.com/js-test-driver-qunit-coverage-requirejs/
https://github.com/youzee/tips-n-tricks/wiki/The-JavaScript-testing-stack

More Related Content

What's hot (20)

PPT
Cygnus unit test
Sung Jae Park
 
PPTX
bamboo 로 PHP 프로젝트 지속적인 배포
KwangSeob Jeong
 
PDF
Front-end Development Process - 어디까지 개선할 수 있나
JeongHun Byeon
 
PPTX
오래된 프로젝트에 Jenkins 적용해보기
용호 최
 
PDF
[네이버오픈소스세미나] Next Generation Spring Security OAuth2.0 - 이명현
NAVER Engineering
 
PDF
Jenkins with Unity3d & Android
종국 임
 
PPT
레가시 프로젝트의 빌드 자동화
Jaehoon Choi
 
PDF
실시간으로 안드로이드 프론트엔드 작업하기
Haze Lee
 
PDF
[C5]deview 2012 nodejs
NAVER D2
 
PPTX
Maven
성욱 전
 
PDF
웹 IDE 비교
Junyoung Lee
 
PDF
메이븐 기본 이해
중선 곽
 
PPTX
메이븐파헤치기(김우용)
우용 김
 
PPTX
처음 시작하는 라라벨
KwangSeob Jeong
 
PPTX
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
중선 곽
 
PDF
Springcamp spring boot intro
Jae-il Lee
 
PDF
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
Jinuk Kim
 
PPTX
Jenkins
Huey Park
 
PPTX
Spring Boot + React + Gradle in VSCode
dpTablo
 
PDF
Envoy 를 이용한 코드 배포 자동화
Juwon Kim
 
Cygnus unit test
Sung Jae Park
 
bamboo 로 PHP 프로젝트 지속적인 배포
KwangSeob Jeong
 
Front-end Development Process - 어디까지 개선할 수 있나
JeongHun Byeon
 
오래된 프로젝트에 Jenkins 적용해보기
용호 최
 
[네이버오픈소스세미나] Next Generation Spring Security OAuth2.0 - 이명현
NAVER Engineering
 
Jenkins with Unity3d & Android
종국 임
 
레가시 프로젝트의 빌드 자동화
Jaehoon Choi
 
실시간으로 안드로이드 프론트엔드 작업하기
Haze Lee
 
[C5]deview 2012 nodejs
NAVER D2
 
Maven
성욱 전
 
웹 IDE 비교
Junyoung Lee
 
메이븐 기본 이해
중선 곽
 
메이븐파헤치기(김우용)
우용 김
 
처음 시작하는 라라벨
KwangSeob Jeong
 
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
중선 곽
 
Springcamp spring boot intro
Jae-il Lee
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
Jinuk Kim
 
Jenkins
Huey Park
 
Spring Boot + React + Gradle in VSCode
dpTablo
 
Envoy 를 이용한 코드 배포 자동화
Juwon Kim
 

Viewers also liked (12)

PDF
최호영, TYPESCRIPT - Javascript의 안정성을 높이기 위한 시도, NDC2013
devCAT Studio, NEXON
 
PPTX
JavaScript defer & async
Seung-Hyun PAEK
 
PPTX
프론트엔드 개발자
jung kyunghwan
 
PPTX
ECMAScript 6의 새로운 것들!
WooYoung Cho
 
PDF
AWS 천재가 된 홍대리 10가지 팁:: Megazone 박세진 ::AWS Summit Seoul 2016
Amazon Web Services Korea
 
PDF
React 튜토리얼 1차시
태현 김
 
PPTX
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
SangHoon Han
 
PDF
비개발자를 위한 Javascript 알아가기 #4
민태 김
 
PDF
Es2015 Simple Overview
Kim Hunmin
 
PPTX
Deview 2015 review
석규 오
 
PDF
FalsyValues. Dmitry Soshnikov - ECMAScript 6
Dmitry Soshnikov
 
PDF
혁신적인 웹컴포넌트 라이브러리 - Polymer
Jae Sung Park
 
최호영, TYPESCRIPT - Javascript의 안정성을 높이기 위한 시도, NDC2013
devCAT Studio, NEXON
 
JavaScript defer & async
Seung-Hyun PAEK
 
프론트엔드 개발자
jung kyunghwan
 
ECMAScript 6의 새로운 것들!
WooYoung Cho
 
AWS 천재가 된 홍대리 10가지 팁:: Megazone 박세진 ::AWS Summit Seoul 2016
Amazon Web Services Korea
 
React 튜토리얼 1차시
태현 김
 
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
SangHoon Han
 
비개발자를 위한 Javascript 알아가기 #4
민태 김
 
Es2015 Simple Overview
Kim Hunmin
 
Deview 2015 review
석규 오
 
FalsyValues. Dmitry Soshnikov - ECMAScript 6
Dmitry Soshnikov
 
혁신적인 웹컴포넌트 라이브러리 - Polymer
Jae Sung Park
 
Ad

Similar to Jenkins를 활용한 javascript 개발 (20)

PPTX
JUnit 지원 라이브러리 소개
Hyunil Shin
 
PDF
Selenium and XpressEngine
Sol Kim
 
PDF
Ui test 자동화하기 - Selenium + Jenkins
Chang Hak Yeon
 
PPTX
CI in the Mobile World (한글번역)
DONGSU KIM
 
PDF
Grunt
Sungwoo Choo
 
PDF
(편집-테스트카페 발표자료) 1인 QA 수행사례로 발표한 자료 (W프로젝트 사례)
SangIn Choung
 
PPTX
Continuous Integration
Donghyun Seo
 
PDF
효율적인 개발 프로세스를 위한 지속적 통합
홍렬 임
 
PDF
katalon studio 툴을 이용한 GUI 테스트 자동화 가이드
SangIn Choung
 
PDF
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211
Ji-Woong Choi
 
PDF
테스트수행사례 W통합보안솔루션
SangIn Choung
 
PDF
MSBuild + Git + Jenkins
선협 이
 
PDF
[NHN_NEXT] 게임 휴먼 프로젝트 CI + GitHub 세팅 방법
MinGeun Park
 
PDF
Enterprise Java web Deployment Strategy
Sukjin Yun
 
PPTX
Bdd 개요 및 Karma 도입 예
Seulgi Choi
 
PDF
jacoco를 이용한 매뉴얼 테스트의 서버사이드 코드 커버리지 측정하기
SangIn Choung
 
PPTX
모바일 Rpg 게임서버 제작
기환 천
 
PPTX
Nodejs, PhantomJS, casperJs, YSlow, expressjs
기동 이
 
PDF
Python을 이용한 패키지 테스트 및 배포해보기
Lee Geonhee
 
PDF
[NDC17] 왓 스튜디오 서비스파트
Chanwoong Kim
 
JUnit 지원 라이브러리 소개
Hyunil Shin
 
Selenium and XpressEngine
Sol Kim
 
Ui test 자동화하기 - Selenium + Jenkins
Chang Hak Yeon
 
CI in the Mobile World (한글번역)
DONGSU KIM
 
(편집-테스트카페 발표자료) 1인 QA 수행사례로 발표한 자료 (W프로젝트 사례)
SangIn Choung
 
Continuous Integration
Donghyun Seo
 
효율적인 개발 프로세스를 위한 지속적 통합
홍렬 임
 
katalon studio 툴을 이용한 GUI 테스트 자동화 가이드
SangIn Choung
 
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211
Ji-Woong Choi
 
테스트수행사례 W통합보안솔루션
SangIn Choung
 
MSBuild + Git + Jenkins
선협 이
 
[NHN_NEXT] 게임 휴먼 프로젝트 CI + GitHub 세팅 방법
MinGeun Park
 
Enterprise Java web Deployment Strategy
Sukjin Yun
 
Bdd 개요 및 Karma 도입 예
Seulgi Choi
 
jacoco를 이용한 매뉴얼 테스트의 서버사이드 코드 커버리지 측정하기
SangIn Choung
 
모바일 Rpg 게임서버 제작
기환 천
 
Nodejs, PhantomJS, casperJs, YSlow, expressjs
기동 이
 
Python을 이용한 패키지 테스트 및 배포해보기
Lee Geonhee
 
[NDC17] 왓 스튜디오 서비스파트
Chanwoong Kim
 
Ad

More from 지수 윤 (20)

PDF
HTML,CSS Next
지수 윤
 
PDF
코드스쿼드 마스터즈세미나 - UI개발자가돼보자
지수 윤
 
PDF
Clean Front-End Development
지수 윤
 
PDF
개발자를 알아보자.
지수 윤
 
PDF
재사용UI 컴포넌트설계
지수 윤
 
PDF
Front-End 개발의 괜찮은 선택 ES6 & React
지수 윤
 
PDF
WEB Front-End 개발과정 살펴보기
지수 윤
 
PDF
크로스브라우징
지수 윤
 
PDF
재사용가능한 서비스코드제작
지수 윤
 
PDF
WEBUI Advanced중간시험
지수 윤
 
PDF
비동기와 이벤트큐 수업자료
지수 윤
 
PDF
JavaScript OOP Pattern
지수 윤
 
PDF
JS특징(scope,this,closure)
지수 윤
 
PDF
JavaScript Debugging (수업자료)
지수 윤
 
PDF
JavaScript Debugging (동영상강의자료)
지수 윤
 
PDF
CSS Layout
지수 윤
 
PDF
더 나은 SW프로젝트를 위해
지수 윤
 
PDF
9주 DOM & Event Advanced
지수 윤
 
PDF
7주 JavaScript Part2
지수 윤
 
PDF
7주 JavaScript Part1
지수 윤
 
HTML,CSS Next
지수 윤
 
코드스쿼드 마스터즈세미나 - UI개발자가돼보자
지수 윤
 
Clean Front-End Development
지수 윤
 
개발자를 알아보자.
지수 윤
 
재사용UI 컴포넌트설계
지수 윤
 
Front-End 개발의 괜찮은 선택 ES6 & React
지수 윤
 
WEB Front-End 개발과정 살펴보기
지수 윤
 
크로스브라우징
지수 윤
 
재사용가능한 서비스코드제작
지수 윤
 
WEBUI Advanced중간시험
지수 윤
 
비동기와 이벤트큐 수업자료
지수 윤
 
JavaScript OOP Pattern
지수 윤
 
JS특징(scope,this,closure)
지수 윤
 
JavaScript Debugging (수업자료)
지수 윤
 
JavaScript Debugging (동영상강의자료)
지수 윤
 
CSS Layout
지수 윤
 
더 나은 SW프로젝트를 위해
지수 윤
 
9주 DOM & Event Advanced
지수 윤
 
7주 JavaScript Part2
지수 윤
 
7주 JavaScript Part1
지수 윤
 

Jenkins를 활용한 javascript 개발