Javascript 테스트

개발/jquery 2018. 2. 14. 22:41
  1. qunit 소개

    • 링크
    • javascript 단위테스트 프레임워크 이다
    • javascript 뿐만 아니라 jQuery, jQuery UI, jQuery Mobile 에서도 사용이 가능하다
    • 장점:
      • UI 제공
      • report 제공
  2. qunit 을 이용한 test

    • 샘플을 통한 구조 이해
    •   <!DOCTYPE html>
        <html>
        <head>
          <meta charset="utf-8">
          <meta name="viewport" content="width=device-width">
          <title>QUnit Example</title>
          <link rel="stylesheet" href="https://code.jquery.com/qunit/qunit-2.5.0.css">
        </head>
        <body>
          <div id="qunit"></div>
          <div id="qunit-fixture"></div>
          <script src="https://code.jquery.com/qunit/qunit-2.5.0.js"></script>
          <script src="https://cdn.jsdelivr.net/npm/qunit-reporter-junit@1.1.1/qunit-reporter-junit.min.js"></script>
          <script>
              <!-- TEST CASE -->
            QUnit.test( "hello test", function( assert ) {
              assert.ok( 1 == "1", "Passed!" );
            });
              <!-- TEST REPORT -->
            QUnit.jUnitReport = function(report) {
              if (typeof console !== 'undefined') {
                console.log(report.xml);
              }
            };
          </script>
        </body>
        </html>
      
      • 샘플 html 호출 결과
  3. qunit 와 phantomjs 를 활용한 js test 구성하기

     html 코드에 필요한 JS function test 만 넣어도 테스트에는 문제가 없지만
     CI 서버에 연동하여 자동배포의 한 단계로 추가하고 싶다면 ...
     step.1 test 결과를 남기고
     step.2 결과를 분석해야 한다
    
    • pre-requisites:
        # yum install fontconfig freetype freetype-devel fontconfig-devel libstdc++
      
    • 필요한 패키지 다운로드 및 압축해제
        $ wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
        $ bunzip2 phantomjs-2.1.1-linux-x86_64.tar.bz2
        $ tar xvf phantomjs-2.1.1-linux-x86_64.tar
      
    • 실행 명령어 샘플
        # runner.js 다운로드
        $ wget https://github.com/jonkemp/qunit-phantomjs-runner/blob/master/runner.js
        # test 실행
        $ /{{phantomjs 압축 해제한 폴더}}/bin/phantomjs runner.js {{테스트 할 html 파일}}
      
    • 실행 예제

        $ /{{phantomjs 압축 해제한 폴더}}/bin/phantomjs runner.js QunitTest.html
        <?xml version="1.0" encoding="UTF-8"?>
        <testsuites name="file://{{QunitTest_PATH}}/QunitTest.html" tests="2" failures="0" errors="0" time="0.008">
            <testsuite id="0" name="" hostname="localhost" tests="1" failures="0" errors="0" time="0.004" timestamp="2018-01-31T07:50:38Z">
                <testcase name="hello test" time="0.002" timestamp="2018-01-31T07:50:38Z">
                </testcase>
            </testsuite>
        </testsuites>
      
        Took 8ms to run 2 tests. 2 passed, 0 failed.
        $


'개발 > jquery' 카테고리의 다른 글

Javascript 로 파일 다운로드 구현하기  (0) 2018.01.10
table rowspan 동적 적용  (1) 2017.11.28
Posted by 감각적신사
,