Ponieważ nie znalazłem żadnej odpowiedzi na to konkretne pytanie, zbadałem sprawę. Oto wyniki mojego dochodzenia i szybkie How-To, aby pomóc ludziom w przeprowadzaniu zautomatyzowanych testów funkcjonalnych w aplikacjach Androidowych za pomocą robotów, a następnie raportować wyniki na serwerze ciągłej integracji, takim jak TeamCity. Pamiętaj, że to nie jest najlepsze rozwiązanie, ale czułem, że ludzie mogą znajdować się w takiej samej sytuacji jak ja. Więc oto jest!
Poniższe biblioteki zostały wykorzystane:
- Robotium (https://code.google.com/p/robotium/): To jest Android ramy automatyzacji testów. Pomaga w przeprowadzaniu automatycznych testów, takich jak klikanie przycisków, automatyczne wypełnianie tekstu i wiele innych rzeczy.
- Android Junit Report (http://zutubi.com/source/projects/android-junit-report/): Ta biblioteka jest bardzo przydatna do opublikowania wyniku testu w nadającym się do wykorzystania formacie xml. Jeśli chcesz uruchomić swoje testy przez Eclipse, widać wyniki swoich badań w ruchu, ale w celu ich eksport, biblioteka ta jest bardzo przydatna
Zakładając, że masz projekt Android przetestować, stworzyć projekt testowy Android (Eclipse ma dobry przepływ pracy, aby go stworzyć) i skonfigurować go do pracy z Robotium. Wyczerpujące i szczegółowe instrukcje, jak to zrobić, można znaleźć tutaj: https://code.google.com/p/robotium/wiki/Getting_Started
Następnie musisz dodać raport Android Junit do swojego projektu, aby móc pobrać wyniki testów. W tym celu dodaj bibliotekę Android Junit Report * .jar do folderu lib i dodaj ją do swojej ścieżki budowania (w Eclipse: Projekt -> Właściwości -> Ścieżka budowania Java -> Biblioteki -> Dodaj zewnętrzny słoik) .
Musisz również zmienić biegacza testu swojego projektu. W AndroidManifest.xml swojego projektu badawczego dodać następujące:
<instrumentation
android:name="com.zutubi.android.junitreport.JUnitReportTestRunner"
android:targetPackage="<insert your package ex:com.alth.myproject" />
Gdy to nastąpi, powinieneś być w stanie uruchomić swoje testy prawidłowo. Wyniki badań powinny być dostępne w urządzeniu (w następującym folderze /data/data//files/junit-report.xml)
Następnym krokiem jest skonfigurowanie Twój TeamCity zbudować kroki do wykonaj wszystkie niezbędne czynności, aby przeprowadzić testy. Należy pamiętać, że moje rozwiązanie może nie być optymalne!
Budowa krok 1: Clean - Command Line Runner - Ten etap budowy mogą być opcjonalne w zależności od tego, jak zdecydujesz się tworzyć pliki build.xml i takie decyzje kompilacji.
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>
Budowa krok 2: Uruchom AVD - Command Line runner - Ten etap budowy uruchamia android urządzenie wirtualne.Ten krok może być opcjonalny, jeśli zdecydujesz się uruchomić testy na rzeczywistym urządzeniu.
emulator -avd <nameOfYourAvd> -no-boot-anim &
sleep 45
W & unika budować zostać przerwana przez uruchomienie urządzenia wirtualnego (To podstawowe komendy shell). Komenda sen służy do próby niech AVD być gotowy do następnego etapu budowy
etap budowy 3: Test app release - Ant biegacz: Budowanie projektu testowego, należy go zainstalować na urządzeniu wirtualnym
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>
Budowa krok 4: AVD Unlock - linia poleceń biegacz: odblokować ekran AVD dla celów testowania
bash avdUnlock.sh
Ciało avdUnlock.sh tutaj: (http://pastie.org/7919761). Ten skrypt wysyła informacje na zwykły port AVD w celu odblokowania ekranu. Można to poprawić, wysyłając polecenie tylko do określonego portu i zmieniając krok 2, aby dodać konkretny port do uruchomienia emulatora. To jednak nie jest tak naprawdę częścią tego jak-to
Budowa krok 5: Uruchom testy - Command Line Runner: uruchamianie testów
adb shell pm list instrumentation
adb shell am instrument -w <insert your test package ex:com.alth.myproject.test>/com.zutubi.android.junitreport.JUnitReportTestRunner
Pierwsze polecenie adb może zostać usunięty. Jest to tylko do celów debugowania, aby zobaczyć, które oprzyrządowanie zostało zainstalowane na urządzeniu.
Budowa krok 6: Fetch testy - linia poleceń biegacz: Pobierz testy sprawozdanie z urządzenia
adb pull /data/data/<insert your project package ex:com.alth.myproject>/files/junit-report.xml <report folder>/junit-report.xml
etapu budowy 7: Final emulator kill - Command Line biegacza: Zabij systemem Android urządzenie wirtualne
adb emu kill
Dodatkowe funkcje produkcji: przetwarzania XML - typ raportu Raport: Ant JUnit
Monitoring rules : <report folder>/*.xml
ten Jak-to zdecydowanie nie jest optymalny, ale odpowiedzi na oryginalne pytanie. W ten sposób można pobrać raport z testów funkcjonalnych Androida i przekazać go do teamcity w celu monitorowania wyników testu.
Mam nadzieję, że to pomoże komuś, a ja spróbuję odpowiedzieć na twoje pytania, jeśli masz jakieś.
Al_th