[英]Interface Android robotium testing with Teamcity
由於之前沒有回答(也許我沒有找到),我調查了以下問題:
如何使用robotium在Android設備上執行自動功能測試,並將其報告給TeamCity等持續集成服務器?
由於我沒有找到關於該具體問題的任何答案,我進行了調查。 以下是我的調查結果和快速操作方法,以幫助人們使用robotium對Android應用程序執行自動功能測試,然后將結果報告給TeamCity等持續集成服務器。 請注意,這可能不是最好的解決方案,但我覺得人們可能和我一樣。 所以在這里!
已使用以下庫:
假設您有一個要測試的Android項目,請創建一個Android測試項目(Eclipse確實有一個很好的工作流程來為您創建)並將其設置為與Robotium一起使用。 有關如何操作的詳細說明,請訪問: https : //code.google.com/p/robotium/wiki/Getting_Started
然后,您需要將Android Junit Report添加到項目中,以便能夠獲取測試結果。 為此,在您的lib文件夾中添加Android Junit Report * .jar庫並將其添加到您的構建路徑中(在Eclipse中: Project - > Properties - > Java Build Path - > Libraries - > Add External Jar )。
您還必須更改項目的測試運行器。 在測試項目的AndroidManifest.xml中添加以下內容:
<instrumentation
android:name="com.zutubi.android.junitreport.JUnitReportTestRunner"
android:targetPackage="<insert your package ex:com.alth.myproject" />
完成后,您應該能夠正確運行測試。 測試結果應該在您的設備中可用(在以下文件夾/data/data//files/junit-report.xml中 )
下一步是配置TeamCity構建步驟,以執行運行測試所需的所有不同操作。 請注意,我的解決方案可能不是最佳解決方案!
構建步驟1:清除 - 命令行運行程序 - 此構建步驟可能是可選的,具體取決於您決定如何創建build.xml文件和此類構建決策。
rm -rf <report folder> rm -rf <Project build.xml> rm -rf <Test project build.xml> android update project -p <Path to your project> android update test-projecct -m <Path to your project, relative to the test project> -p <Path to your test project>
構建步驟2:啟動AVD - 命令行運行程序 - 此構建步驟啟動Android虛擬設備。 如果您決定在實際設備上運行測試,則此步驟可以是可選的。
emulator -avd <nameOfYourAvd> -no-boot-anim & sleep 45
&避免構建被虛擬設備啟動中斷(這是基本的shell命令)。 sleep命令用於嘗試讓AVD為下一個構建步驟做好准備
構建步驟3:測試應用程序發布 - Ant runner:構建測試項目,將其安裝在虛擬設備上
Path to build xml file : <Path to your test project>/build.xml Additional Ant command line parameters : -f <Path to your test project>/build.xml clean debug install -Dsdk.dir=<Path to your android sdk>
構建步驟4:AVD解鎖 - 命令行運行器:解鎖AVD屏幕以進行測試
bash avdUnlock.sh
avdUnlock.sh的正文:( http://pastie.org/7919761 )。 此腳本在常規AVD端口上發送信息以解鎖屏幕。 這可以通過僅將命令發送到特定端口並更改構建步驟2以將特定端口添加到模擬器啟動來改進。 然而,這並不是這個方法的一部分
構建步驟5:啟動測試 - 命令行運行器:啟動測試
adb shell pm list instrumentation adb shell am instrument -w <insert your test package ex:com.alth.myproject.test>/com.zutubi.android.junitreport.JUnitReportTestRunner
可以刪除第一個adb命令。 這僅用於調試目的,以便查看設備上已安裝了哪些儀器。
構建步驟6:獲取測試 - 命令行運行器:從設備檢索測試報告
adb pull /data/data/<insert your project package ex:com.alth.myproject>/files/junit-report.xml <report folder>/junit-report.xml
構建步驟7:最終模擬器終止 - 命令行運行器:殺死正在運行的android虛擬設備
adb emu kill
其他構建功能:XML報告處理 - 報告類型:Ant JUnit
Monitoring rules : <report folder>/*.xml
該方法顯然不是最佳的,但回答原始問題。 這樣做,就可以獲取android功能測試報告並將其提供給teamcity以便monitore測試結果。
我希望這會對某人有所幫助,如果你有一些問題,我會盡力回答你的問題。
Al_th
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.