Home / Android-Entwicklung / Das Android Arsenal – Testen

Das Android Arsenal – Testen

Gordon ist ein Testläufer für Android-Instrumente, der auf Geschwindigkeit, Einfachheit und Zuverlässigkeit ausgelegt ist. Wir haben es gebaut, weil weder Spoon noch Fork schnell genug oder zuverlässig genug für uns waren, und beim Versuch, diese Bibliotheken aufzuteilen, fanden wir sie zu alt und kompliziert, um sie zu modifizieren. Wir haben Gordon von Grund auf mit modernen Gradle-Funktionen und Kotlin-Coroutinen geschrieben.

Hauptmerkmale

Setup

Mit Gradle-Plugins Block

settings.gradle.kts Ihres Root-Projekts





 pluginManagement {
    Aufbewahrungsorte {
        gradlePluginPortal ()
        Google()
        jcenter ()
        maven ( " https://www.jitpack.io " 



)
    }

    Plugins {
        id ( " com.banno.gordon " ) version  " $ gordonVersion " 


    }
} 

build.gradle.kts aller Module, für die Sie Tests mit Gordon

 -Plugins ausführen möchten {
    id ( " com.banno.gordon " 
)
} 

Mit alter Gradle-Plugins-Syntax

build.gradle Ihres Root-Projekts





 buildscript {
    Aufbewahrungsorte {
        gradlePluginPortal ()
        Google()
        jcenter ()
        maven {url  " https://jitpack.io " 



}
    }

    Abhängigkeiten {
        classpath  " com.banno.gordon: gordon-plugin:  $ g  ordonVersion " 


    }
} 

Build.gradle aller Module, für die Sie Tests mit Gordon ausführen möchten

Plugin :  " com.banno.gordon " 

Konfigurieren

von build.gradle.kts aller Module, für die Sie Gordon angewendet haben

 Import  com.banno.gordon.PoolingStrategy 




Gordon {
     //  Standard ist PoolingStrategy.EachDevice 

    poolingStrategy.set ( PoolingStrategy .  PhonesAndTablets 

)

     //  Standard ist 0 

    retryQuota.set ( 2 

)

     //  Standard ist 120_000 (2 Minuten) 

    testTimeoutMillis.set ( 60_000 

)

     //  Standard ist kein Filter 

    testFilter.set ( " ExampleTest.runThisMethod, RunThisWholeTestClass, com.example.runthispackage " 
)
} 

Pooling-Strategien

  • EachDevice – Jedes Gerät ist ein eigener Pool, sodass jeder Test auf jedem Gerät ausgeführt wird.
  • AllDevices – Alle Geräte bilden einen Pool, sodass jeder Test nur ausgeführt wird einmal auf einem nicht angegebenen Gerät
  • PhonesAndTablets – Geräte werden nach Typ in Pools aufgeteilt, sodass jeder Test auf einem Telefon und einem Tablet ausgeführt wird.
  • SpecificDevices – Jedes angegebene Gerät ist ein eigener Pool. Daher wird jeder Test auf jedem angegebenen Gerät ausgeführt.

Ausführen von

Aufgaben

Gordon registriert eine Gradle-Aufgabe für jede getestete Variante und entfernt Debug vom Aufgabennamen, da er redundant ist.

Für Wenn Sie beispielsweise keine Flavours definiert haben, wird die folgende Task registriert:

  • gordon – das Äquivalent von connectedDebugAndroidTest

Wenn Sie eine -Modus-Dimension mit -Demo haben und volle Aromen sowie eine Inszenierung Buildtyp zusätzlich zu den Standardtypen Debugtypen und Releasetypen werden die folgenden Tasks registriert:

  • gordonDemo – das Äquivalent zu connectedDemoDebugAndroidTest
  • gordonFull – das Äquivalent von connectedFullDebugAndroidTest
  • gordonDemoStaging – das Äquivalent von connectedDemoStagingAndroidTest
  • gordon connectedFullStagingAndroidTest

Filtern

Es gibt eine Befehlszeilenoption - tests die den in der Erweiterung gordon festgelegten Testfilter außer Kraft setzt, wenn beide angegeben sind. [19659002] Beispiele

  • ./ gradlew gordon
  • ./ gradlew gordon --tests = ExampleTest.runThisMethod
  • ./ gradlew gordon --tests = RunThisWholeTestClass
  • ./ gradle gordon --tests = ExampleTest .runThisMethod, com.example.runthispackage

Wiederholungen

Wenn ein Wiederholungskontingent angegeben ist, wiederholt Gordon nach einem Testversuch zunächst alle Tests, die aufgrund von Geräteproblemen nicht ausgeführt werden konnten, bis zum angegebenen Kontingent pro Testfall und wiederholen Sie alle fehlgeschlagenen Tests bis zur angegebenen Quote pro Testfall. Wenn mehrere Geräte in einem Pool verfügbar sind, wird ein fehlgeschlagener Test auf einem anderen Gerät wiederholt als dem, auf dem er ursprünglich fehlgeschlagen ist.

Berichte

Gordon generiert Junit-Berichte im Build-Verzeichnis / Testergebnisse und ein HTML-Bericht im Build-Verzeichnis / Berichte .

Beiträge

Beiträge sind willkommen. Sie können das enthaltene App-Modul verwenden, um Änderungen am Gordon-Plugin lokal zu testen.

  1. Nehmen Sie Änderungen am Gordon-Plugin vor.
  2. Führen Sie ./ gradlew publishToMavenLocal
  3. aus ] com.banno.gordon in App-Plugins und ändern Sie die Version in die gerade bereitgestellte Version
  4. . Testen Sie Ihre Änderungen, indem Sie ./ gradlew gordon ausführen, um App-Tests unter Verwendung der lokalen Funktion auszuführen Gordon

Warum wir unseren Testläufer Gordon

nannten Lizenz














    Copyright 2019 Jack Henry & Associates, Inc.

   Lizenziert unter der Apache-Lizenz, Version 2.0 (die "Lizenz");
   Sie dürfen diese Datei nur in Übereinstimmung mit der Lizenz verwenden.
   Eine Kopie der Lizenz erhalten Sie unter

       http://www.apache.org/licenses/LICENSE-2.0

   Sofern nicht gesetzlich vorgeschrieben oder schriftlich vereinbart, Software
   unter der Lizenz vertrieben wird auf einer "AS IS" -Basis verteilt,
   OHNE GARANTIEN ODER BEDINGUNGEN JEGLICHER Art, entweder ausdrücklich oder stillschweigend.
   In der Lizenz finden Sie die spezifische Sprache für die Berechtigungen und
   Einschränkungen unter der Lizenz.

.

About AndroidWeltEditor

Check Also

Wie Android-Entwickler Benutzer auf jedem Gerät erreichen können

Gepostet von Allan Livingston, Produktmanagementdirektor, Chrome OS App Ecosystem Android unterstützt mobile Apps auf Geräten, …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.