KEMBAR78
Automated android testing using jenkins ci | PDF
Sveinung Kval Bakken (sveinungkb)
JavaZone 2011


AUTOMATED ANDROID TESTING USING JENKINS


                            Sveinung Kval Bakken
Why Jenkins/<other CI>?
Automated testing

Unattended build & distribution

Will eventually find the last digit of 


                Sveinung Kval Bakken
Problem




 Sveinung Kval Bakken
Prerequisites
– Install Jenkins
– Install Android SDK
– Install Apache Ant
– Create an Android project
– Add to PATH:
   • <path>android-sdk-windowstools
   • <path>android-sdk-windowsplatform-tools
   • <path>apache-ant-xxbin



                     Sveinung Kval Bakken
Coding: build with ant
• Preparations
  – android update test-project –m <rel.path to main project> –p <path>
  – android update project –p <path>

• Add test runner
• Pull report




                             Sveinung Kval Bakken
Hello Jenkins!
•   Get http://bit.ly/dDXQBy
•   java –jar jenkins.war
•   http://localhost:8080
•   Install «Emma plugin»
•   Create jobs
    – run-tests
    – coverage
    – release

                      Sveinung Kval Bakken
Pull report from device
Change AndroidManifest.xml to:
<instrumentation android:targetPackage="no.glt" android:name="com.neenbedankt.android.test.InstrumentationTestRunner" />



<!– Add to test project’s build.xml after setup task -->
<target name="test-and-pull-report" depends="run-tests">
<property name="test.path.to.report.device" value="/data/data/${tested.manifest.package}/files/TEST-all.xml"/>
<property name="test.path.to.report.local" value="TEST-all.xml"/>
    <echo>Pulling JUnit test report file ${test.path.to.report.device} into local directory ${test.path.to.report.local}</echo>
    <exec executable="${adb}" failonerror="true">
      <arg line="${adb.device.arg}" />
      <arg value="pull" />
      <arg value="${test.path.to.report.device}" />
      <arg value="${test.path.to.report.local}" />
    </exec>
</target>


Add to build.properties:
test.runner=com.neenbedankt.android.test.InstrumentationTestRunner




                                                      Sveinung Kval Bakken
Q&A
  Jobs, projects or questions?
sb@giantleap.no / sveinungkb




           Sveinung Kval Bakken

Automated android testing using jenkins ci

  • 1.
    Sveinung Kval Bakken(sveinungkb) JavaZone 2011 AUTOMATED ANDROID TESTING USING JENKINS Sveinung Kval Bakken
  • 2.
    Why Jenkins/<other CI>? Automatedtesting Unattended build & distribution Will eventually find the last digit of Sveinung Kval Bakken
  • 3.
  • 4.
    Prerequisites – Install Jenkins –Install Android SDK – Install Apache Ant – Create an Android project – Add to PATH: • <path>android-sdk-windowstools • <path>android-sdk-windowsplatform-tools • <path>apache-ant-xxbin Sveinung Kval Bakken
  • 5.
    Coding: build withant • Preparations – android update test-project –m <rel.path to main project> –p <path> – android update project –p <path> • Add test runner • Pull report Sveinung Kval Bakken
  • 6.
    Hello Jenkins! • Get http://bit.ly/dDXQBy • java –jar jenkins.war • http://localhost:8080 • Install «Emma plugin» • Create jobs – run-tests – coverage – release Sveinung Kval Bakken
  • 7.
    Pull report fromdevice Change AndroidManifest.xml to: <instrumentation android:targetPackage="no.glt" android:name="com.neenbedankt.android.test.InstrumentationTestRunner" /> <!– Add to test project’s build.xml after setup task --> <target name="test-and-pull-report" depends="run-tests"> <property name="test.path.to.report.device" value="/data/data/${tested.manifest.package}/files/TEST-all.xml"/> <property name="test.path.to.report.local" value="TEST-all.xml"/> <echo>Pulling JUnit test report file ${test.path.to.report.device} into local directory ${test.path.to.report.local}</echo> <exec executable="${adb}" failonerror="true"> <arg line="${adb.device.arg}" /> <arg value="pull" /> <arg value="${test.path.to.report.device}" /> <arg value="${test.path.to.report.local}" /> </exec> </target> Add to build.properties: test.runner=com.neenbedankt.android.test.InstrumentationTestRunner Sveinung Kval Bakken
  • 8.
    Q&A Jobs,projects or questions? sb@giantleap.no / sveinungkb Sveinung Kval Bakken