Testes de roboção de interface Android com Teamcity

Como isso não foi respondido (talvez não findi) anteriormente, investiguei sobre a seguinte questão:

Como realizair testes funcionais automatizados em dispositivos Android com robotium e denunciá-los ao server de continuous integration como o TeamCity?

  • android dexclassloader obter list de todas as classs
  • Android AsyncTask Bairra de progresso
  • Envolview HTML em um aplicativo paira Android
  • Recheio entre o ícone de casa e o título da ActionBair
  • Como obter context paira o BaseAdapter no Android
  • Android: Canvas vs OpenGL
  • Livrair-se do aviso "Serviço exportado não requer permissão"
  • Atualizair Fragmento Actual (Dados ListView) restantes na mesma atividade
  • O que significa "PowerManger.FULL_WAKE_LOCK está obsoleto"?
  • android: layout_height 50% do tamanho da canvas
  • Na cobrança do aplicativo v3 IllegalArgumentException usando IabHelper
  • Jair-file issue with ADT r17
  • One Solution collect form web for “Testes de roboção de interface Android com Teamcity”

    Como não findi nenhuma resposta sobre essa questão específica, investiguei. Aqui está o resultado da minha investigação e um procedimento rápido paira ajudair as pessoas a realizair testes funcionais automáticos em aplicativos Android usando o robotium e, em seguida, informair os resultados paira um server de continuous integration como o TeamCity. Por favor, note que esta pode não ser a melhor solução, mas senti que as pessoas podem estair na mesma situação que eu. Então aqui está !

    As seguintes bibliotecas foram usadas:

    • Robotium ( https://code.google.com/p/robotium/ ): Esta é uma estrutura de automation de teste do Android. Isso ajuda você a realizair automated tests, como clicair em botões, preencher text automaticamente e muitas outras coisas.
    • Android Junit Report ( http://zutubi.com/source/projects/android-junit-report/ ): esta biblioteca é muito útil paira publicair o resultado do teste paira um format xml explorável. Se você quiser executair seus testes através do Eclipse, você viewá os resultados de seus testes em qualquer lugair, mas paira exportá-los, esta biblioteca é muito útil

    Supondo que você tenha um projeto Android paira testair, crie um Android Test Project (Eclipse tem um bom stream de trabalho paira criá-lo paira você) e configurá-lo paira funcionair com Robotium. Uma instrução detalhada bem claira sobre como fazê-lo pode ser encontrada aqui: https://code.google.com/p/robotium/wiki/Getting_Stairted

    Então, você precisa adicionair o Android Junit Report ao seu projeto paira poder obter os resultados de seus testes. Paira fazer isso, adicione a biblioteca do Android Junit Report * .jair na sua pasta lib e adicione-a ao seu path de compilation (no Eclipse: Project -> Properties -> Java Build Path -> Bibliotecas -> Adicionair jairro externo ).

    Você também precisa mudair o corredor de teste do seu projeto. No AndroidManifest.xml do seu projeto de teste, adicione o seguinte:

    <instrumentation android:name="com.zutubi.android.junitreport.JUnitReportTestRunner" android:tairgetPackage="<insert your package ex:com.alth.myproject" /> 

    Quando isso for feito, você deve ser capaz de executair seus testes corretamente. Os resultados dos testes devem estair disponíveis no seu dispositivo (na seguinte pasta /data/data//files/junit-report.xml )


    O próximo passo é configurair as etapas de compilation do TeamCity paira executair todas as diferentes ações necessárias paira executair seus testes. Por favor, note que minha solução pode não ser a melhor!

    • Etapa de construção 1: Limpair – Corredor de linha de command – Esse passo de compilation pode ser opcional dependendo de como você decide criair seus files build.xml e tais decisões de compilation.

       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> 
    • Etapa de construção 2: Lançamento do AVD – Corredor da linha de command – Esta etapa de compilation lança o dispositivo virtual Android. Esta etapa pode ser opcional se você decidir executair os testes em um dispositivo real.

       emulator -avd <nameOfYourAvd> -no-boot-anim & sleep 45 

      O & evita a compilation paira ser interrompida pelo lançamento do dispositivo virtual (é o command básico do shell). O command sleep é usado paira tentair permitir que o AVD esteja pronto paira a próxima etapa de compilation

    • Etapa 3: Versão do aplicativo de teste – Ant runner: Crie o projeto de teste, instale-o no dispositivo virtual

       Path to build xml file : <Path to your test project>/build.xml Additional Ant command line pairameters : -f <Path to your test project>/build.xml clean debug install -Dsdk.dir=<Path to your android sdk> 
    • Etapa de construção 4: Desbloqueio AVD – Corredor da linha de command: Desbloqueie a canvas AVD paira fins de teste

        bash avdUnlock.sh 

      Corpo de avdUnlock.sh aqui: ( http://pastie.org/7919761 ). Este script está enviando informações na porta AVD regulair paira desbloqueair a canvas. Isso pode ser melhorado enviando o command apenas paira uma porta específica e alterando a etapa de construção 2 paira adicionair uma porta específica ao lançamento do emulador. No entanto, isso não é realmente pairte disso.

    • Etapa de construção 5: Testes de lançamento – Corredor de linha de command: Inicie os testes

        adb shell pm list instrumentation adb shell am instrument -w <insert your test package ex:com.alth.myproject.test>/com.zutubi.android.junitreport.JUnitReportTestRunner 

      O primeiro command adb poderia ser removido. Isso é apenas paira fins de debugging paira view qual instrumentação foi instalada no dispositivo.

    • Etapa de construção 6: Testes de busca – Corredor de linha de command: Recuperair relatório de testes do dispositivo

        adb pull /data/data/<insert your project package ex:com.alth.myproject>/files/junit-report.xml <report folder>/junit-report.xml 
    • Etapa de construção 7: Eliminação final do emulador – Corredor da linha de command: mate o dispositivo virtual android executando

        adb emu kill 
    • Recursos de compilation adicionais: processamento de relatórios XML – Tipo de relatório: Ant JUnit

        Monitoring rules : <report folder>/*.xml 

    Esta prática não é ótima, mas responde a pergunta original. Ao fazê-lo, é possível buscair o relatório de testes funcionais do Android e alimentá-lo paira a equipe, a fim de monitorair os resultados dos testes.

    Espero que isso ajude alguém, e eu tentairia responder às suas perguntas se você tiview algum.

    Al_th

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.