閱讀878 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Windows下Android項目搭建Jenkins持續構建+自動化測試

安裝Jenkins + 建立項目
1,  打開https://jenkins-ci.org/, 下載jenkins.war。
2,  Jenkins的安裝非常簡單,可以直接在命令行中使用java –jar jenkins.war運行,也可以將jenkins.war放在tomcat中去執行。
3,  打開Jenkins的係統管理>係統設置:
a)         在jdk中填入jdk安裝地址。
b)         在ant中填入ant安裝地址。
c)         在最下麵的郵件通知中設置郵箱的smtp地址等信息。設置完成後可以測試是否設置成功。
4,  打開係統管理>插件管理>可選插件,安裝如下插件:
a)         ant
b)         Android Emulator Plugin
c)         Jenkins Emma plugin
d)         FindBugs Plug-in
5,  在Eclipse中新建一個Android項目以及測試項目,假設你的項目目錄結構如下所示:
/workspace/android-app
/workspace/android-test
安裝Apache Ant。
1.         在Eclipse workspace下為Android app項目添加ant,執行:
android update project -p android-app
2.         為測試項目添加ant,執行:
android update test-project -m ../android-app -p android-test
3.         現在app項目中生成了local.properties文件,這個文件應該在版本控製工具中設置為忽略;在test項目中現在生成了ant.properties和local.properties兩個文件,這兩個文件必須要加入版本控製工具中(SVN)。
4.         在命令行中執行下麵的代碼看看ant是不是成功運行了:
ant clean debug
5.         開啟一個Android模擬器,然後在test工程下執行下麵的代碼看看測試工程是否可以成功運行:
ant all clean emma debug install test
6.         如果成功的話會在測試工程下生成coverage目錄,內含一個名為coverage.html的文件,裏麵是測試用例的覆蓋率等數據。
 
安裝Emma
         Emma用於在Jenkins中生成出Ant執行的測試用例的報表,上麵我們測試後生成的是html格式的,但是要想在jenkins中生成圖形等,則必須生成出xml格式的文件。
1,  打開SDK安裝目錄,打開tools/ant/build.xml,複製其中名為coverage的target到你的測試項目中的build.xml文件中。
2,  將<html out />節點替換成:
<html out />
<xml out />
3,  將<ehco>節點替換成:
<echo>Saving the report file in ${basedir}/coverage/coverage.xml</echo>
4,  再次運行:ant all clean emma debug install test命令後,在coverage文件夾中多了一個coverage.xml 文件的話則成功。
 
安裝FindBugs
         FindBugs用來找到你的項目中的bug,目前我還沒有使用到它。不過Jenkins官方文檔中的步驟將它配置了,所以我們也來做它的配置。
1,  下載FindBugs,將其中lib/findbugs-ant.jar 拷貝到Ant安裝目錄下的lib文件夾中。
2,  在app工程文件夾下的local.properties文件中加入:findbugs.home=** 其中**為你的findbugs的安裝目錄。
3,  如果你需要在R.java中查找bug的話則需要在app工程目錄下添加一個名為findbugs-exclude.xml的文件,在其中寫入下麵的代碼。
        <?xml version="1.0" encoding="UTF-8"?>
                    <FindBugsFilter>
                                        <Match>
                                                            <Class name="~.*\.R\$.*"/>
                                                            <Bug code="Nm"/>
                                        </Match>
                    </FindBugsFilter>
4,  在app工程目錄下的build文件中加入下麵的代碼。
<taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask"/>
<target name="findbugs">
<mkdir dir="reports" />
         <findbugs home="${findbugs.home}" output="xml" outputFile="reports/findbugs.xml" excludeFilter="findbugs-exclude.xml">
           <auxClasspath path="${android.jar}" />
           <class location="${out.dir}" />
</findbugs>
</target>
5,  執行ant clean compile findbugs 後在app工程目錄下生成一個名為reports的文件夾,裏麵包含了一個名為findbugs.xml的文件。
 
配置jenkins
         Jenkins環境修改:
1,  下載android-junit-report-1.2.6.jar(可以下載更新的版本),將它加入test工程的build path中。
2,  修改test project的AndroidManifest.xml,找到tag "instrumentation" 將屬性"android:name" 的值改成 com.zutubi.android.junitreport.JUnitReportTestRunner。
3,  打開test工程下的build.xml,在</run-test-helper>節點後加入下麵的代碼:<echo>Downloading XML test report...</echo>
<exec executable="${adb}" fail>
<arg line="${adb.device.arg}"/>
<arg value="pull" />
<arg value="/data/data/${tested.manifest.package}/files/junit-report.xml" />
<arg value="junit-report.xml" />
</exec>
4,  找到其中名為test.runner的property節點,將它的值改為:com.zutubi.android.junitreport.JUnitReportTestRunner
 
         配置App工程:
1,  添加一個自由風格任務,選擇subversion,將app項目的svn地址填入(第一次使用的時候會要求提供svn賬戶密碼)。
2,  添加一個Invoke Ant構建步驟,在其中的Targets填入clean compile findbugs。
3,  在高級選項中的properties填入下麵內容(注意填自己的安裝信息):sdk.dir=D:\\WORK\\ENVIROMENT\\ANDROID\\AndroidSDK
findbugs.home=D:\\WORK\\ENVIROMENT\\FingBugs\\ findbugs-2.0.0
4,  構建後選項選擇:Publish FindBugs analysis results,然後填入:reports/findbugs.xml。
5,  選擇Archive the artifacts,這樣可以在每次構建後提供構建出來的apk版本。
6,  勾選E-mail Notification選項,在下麵的recipients中填入需要接收構建異常信息的聯係人郵件地址。勾選“每次不穩定的構建都發送郵件通知”選項。
配置test工程:
1,  添加自由風格任務,選擇subversion,將test項目的svn地址填入。
2,  在Invoke Ant的target中填入:all clean emma debug install test。
3,  在build file中填入build.xml。
4,  在properties中填入sdk.dir=D:\\WORK\\ENVIROMENT\\ANDROID\\AndroidSDK。
5,  勾選Publish JUnit test result report,填入:junit-report.xml。
6,  勾選Record Emma coverage report,填入:coverage/coverage.xml。
7,  勾選E-mail Notification,如app工程配置。
所有配置工作到此結束,現在可以去跑了。

最後更新:2017-04-03 12:55:39

  上一篇:go Sql Server統計表中某年某月某個值有多少?
  下一篇:go C# 對Word文檔進行處理