• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    自動進行團隊構建和單元測試過程

    發布: 2008-4-03 17:48 | 作者: Andrew Glover | 來源: IBM | 查看: 263次 | 進入軟件測試論壇討論

    領測軟件測試網


    安裝 CruiseControl

    下一個工作是下載 CruiseControl(請參閱 參考資料)并把它安裝在 pkg 目錄中:

    [cruise@fcvm pkg]$ wget -q http://heanet.dl.sourceforge.net/\
    sourceforge/cruisecontrol/cruisecontrol-2.2.1.zip
    [cruise@fcvm pkg]$ unzip cruisecontrol-2.2.1.zip
    Archive:  cruisecontrol-2.2.1.zip
       creating: cruisecontrol-2.2.1/
       creating: cruisecontrol-2.2.1/contrib/
    [...]
      inflating: cruisecontrol-2.2.1/reporting/jsp/webcontent/xsl/testdeta
    ils.xsl
      inflating: cruisecontrol-2.2.1/reporting/jsp/webcontent/xsl/unittest
    s.xsl
    [cruise@fcvm pkg]$ rm cruisecontrol-2.2.1.zip
    [cruise@fcvm pkg]$ 

    不需要構建 CruiseControl,因為發行包中包含一個預先構建好的 JAR 文件。

    現在可以讓第一個自動構建工作了。這里將采用 XStream 項目的源樹作為初始示例(請參閱 參考資料)。稍后 您將會學習到如何添加來自本地和遠程源代碼倉庫的更多項目。CruiseControl 從自己的啟動目錄中叫作 config.xml 的文件中讀取要構建的項目的信息。在本文的安裝中,這個目錄是 /home/cruise。清單 1 顯示了一個簡單的 config.xml 文件的內容,可以從它開始。要創建它,只要把清單 1 中的文本拷貝到一個新文件就可以了:


    清單 1. 構建 XStream 的簡單的 CruiseControl config.xml 文件
    				
    <?xml version="1.0"?>
    <cruisecontrol>
      <project name="xstream" buildafterfailed="false">
        <listeners>
          <currentbuildstatuslistener
               file="log/build/xstream/status.txt"/>
        </listeners>
        <modificationset>
          <filesystem folder="/home/cruise/force-build/xstream"/>
          <svn LocalWorkingCopy="src/xstream"/>
        </modificationset>
        <schedule interval="3600">
          <ant antscript="/usr/bin/ant"
               uselogger="true"
               antworkingdir="src/xstream"
               multiple="1"
               target="library"/>
          <ant antscript="/usr/bin/ant"
               uselogger="true"
               antworkingdir="src/xstream"
               multiple="5"
               target="clean library"/>
        </schedule>
        <log dir="log/build/xstream"/>
        <dateformat format="dd/MM/yyyy HH:mm:ss"/>
      </project>
    </cruisecontrol>

    配置文件向 CruiseControl 提供了關于要構建的每個項目的三部分主要信息:

    • 如何構建項目,在 <schedule> 元素中指定:
      • 每 3,600 秒(即每小時)構建項目一次。
      • 用 Ant 進行構建過程。
      • 每進行到第 5 次構建時,清理構建制品(類文件以及前面構建中的類似內容)的源樹。
    • 如何檢測什么時候 應當 構建項目,在 <modificationset> 元素中指定:
      • 用 Subversion(svn)檢查源樹的本地工作拷貝是否過期。(如果源代碼沒有變化,就不需要構建。)
      • 檢測強制構建目錄中叫作 xstream 的文件的時間戳。這樣即使源樹沒有變化,也可以手動強制進行下一次安排的構建。(在這篇文章后面,我將多次談到可能需要這種手工覆蓋。)
    • 對構建的結果要做什么,在 <listeners><log> 元素中指定:
      • 把構建過程的輸出放在 log/build/xstream 目錄中加了時間戳的文件中。
      • 把構建的整體狀態寫入這個目錄中的一個文件。

    現在需要從 XStream 項目的 Subversion 倉庫中簽出 XStream 源樹。為了保持一致,請把所有源樹簽出為 /home/cruise/src 的子目錄,并把 XStream 源樹放在 src/xstream 中,就像 config.xml 文件所指定的那樣:

    [cruise@fcvm pkg]$ cd
    [cruise@fcvm ~]$ mkdir src
    [cruise@fcvm ~]$ cd src
    [cruise@fcvm src]$ svn co https://svn.codehaus.org/\
    xstream/trunk/xstream
    A    xstream/LICENSE.txt
    A    xstream/continuous-integration.xml
    [...]
    A    xstream/build.xml
     U   xstream
    Checked out revision 614.
    [cruise@fcvm src]$ 

    然后,設置強制構建子目錄:

    [cruise@fcvm src]$ cd ..
    [cruise@fcvm ~]$ mkdir force-build
    [cruise@fcvm ~]$ touch force-build/xstream
    [cruise@fcvm ~]$ 

    最后這一步是必需的,因為如果 config.xml 文件的 <filesystem> 元素中指定的文件不存在,CruiseControl 會拒絕啟動。

    現在構建工作可能沒有正常工作,也有可能遺漏了一些依賴項。所以這個時候,應當做一些手動檢查,確保能夠成功構建 XStream 源樹:

    構建 XStream 有問題?
    有可能發現 XStream 構建失敗,報告 org.w3c.dom.TypeInfoNoClassDefFoundError 錯誤。實際上,構建幾乎就成功了,但是 XStream 的 Ant 構建腳本用 <junitreport> 任務生成 JUnit 測試結果的 HTML 報告。這個工作使用 XSLT 轉換,所以觸發了前面我在 初始配置 一節中提到過的 xerces-j2 包中的 bug。
    [cruise@fcvm ~]$ cd src/xstream
    [cruise@fcvm xstream]$ ant library
    Buildfile: build.xml
    compile:
        [mkdir] Created dir: /home/cruise/src/xstream/build/java
         [echo] Java version used for compile: 1.4.2_08
        [javac] Compiling 150 source files to /home/cruise/src/xstream/bui
    ld/java
    [...]
    library:
    BUILD SUCCESSFUL
    Total time: 1 minute 44 seconds
    [cruise@fcvm xstream]$ 

    而且,在添加新項目時,需要找到用來構建源和清理其中制品的目標的名稱。必須把這個信息放在 config.xml 文件中。

    現在應當做好準備,可以讓 CruiseControl 自動執行這個構建了。只要啟動 CruiseControl,然后坐下來等待就可以了:

    [cruise@fcvm xstream]$ cd
    [cruise@fcvm ~]$ java -jar \
    pkg/cruisecontrol-2.2.1/main/dist/cruisecontrol.jar
    [cc]Aug-24 20:09:31 Main          - CruiseControl Version 2.2.1
    [cc]Aug-24 20:09:32 trolController- projectName = [xstream]
    [cc]Aug-24 20:09:32 trolController- No previously serialized project f
    ound: /home/cruise/xstream
    [cc]Aug-24 20:09:32 Project       - Project xstream:  reading settings
     from config file [/home/cruise/config.xml]
    [cc]Aug-24 20:09:32 BuildQueue    - BuildQueue started
    [cc]Aug-24 20:09:32 Project       - Project xstream starting
    [cc]Aug-24 20:09:32 Project       - Project xstream:  idle
    [cc]Aug-24 20:09:32 Project       - Project xstream started
    [cc]Aug-24 20:09:32 Project       - Project xstream:  next build in 1 
    hours
    [cc]Aug-24 20:09:32 Project       - Project xstream:  waiting for next
     time to build
    [cc]Aug-24 21:09:33 Project       - Project xstream:  in build queue
    [cc]Aug-24 21:09:33 BuildQueue    - now adding to the thread queue: xs
    tream
    [cc]Aug-24 21:09:33 Project       - Project xstream:  reading settings
     from config file [/home/cruise/config.xml]
    [cc]Aug-24 21:09:33 Project       - Project xstream:  bootstrapping
    [cc]Aug-24 21:09:33 Project       - Project xstream:  checking for mod
    ifications
    [cc]Aug-24 21:09:59 Project       - Project xstream:  No modifications
     found, build not necessary.
    [cc]Aug-24 21:09:59 Project       - Project xstream:  Building anyway,
     since build was explicitly forced.
    [cc]Aug-24 21:09:59 Project       - Project xstream:  now building
    Buildfile: build.xml
    [cc]Aug-24 21:11:29 Project       - Project xstream:  merging accumula
    ted log files
    [cc]Aug-24 21:11:30 Project       - Project xstream:  build successful
    [cc]Aug-24 21:11:30 Project       - Project xstream:  publishing build
     results
    [cc]Aug-24 21:11:30 Project       - Project xstream:  idle
    [cc]Aug-24 21:11:30 Project       - Project xstream:  next build in 1 
    hours
    [cc]Aug-24 21:11:30 Project       - Project xstream:  waiting for next
     time to build
    [stop CruiseControl using Ctrl-C]
    [cruise@fcvm ~]$ 

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    52/5<12345>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>