Neue GoogleTests (GTests) hinzufügen

Wenn Sie noch nicht mit der Entwicklung von Android-Plattformen vertraut sind, finden Sie hier Beispiel für das Hinzufügen eines brandneuen GTest-Binärprogramms (manchmal auch als „native“ Test) von Grund auf neu, um den typischen Arbeitsablauf zu demonstrieren. Für Weitere Informationen zum GTest-Framework für C++ finden Sie im GTest-Projekt weitere Informationen.

In dieser Anleitung wird der Hello World GTest verwendet. als Beispiel. Wir empfehlen, den Code zu lesen, um einen groben Überblick zu erhalten. bevor Sie fortfahren.

Quellspeicherort festlegen

In der Regel hat Ihr Team bereits ein festes Muster von Orten, die überprüft werden sollen. im Code und an Stellen, an denen Tests hinzugefügt werden können. Die meisten Teams haben ein einzelnes Git-Repository oder können Sie eines für andere Teams freigeben, haben aber ein eigenes Unterverzeichnis, das Quellcode der Komponente.

Angenommen, der Stammspeicherort Ihrer Komponentenquelle ist <component source root>, dann haben die meisten Komponenten die Ordner src und tests darunter und einige zusätzliche Dateien wie Android.mk (oder sie sind in zusätzliche .bp-Dateien aufgeteilt).

Da Sie einen neuen Test hinzufügen, müssen Sie wahrscheinlich tests neben der Komponente src und füllen Sie sie mit Inhalt.

In einigen Fällen hat Ihr Team möglicherweise weitere Verzeichnisstrukturen unter tests da verschiedene Testsuiten in individuelle Binärdateien gepackt werden müssen. Und in diesem Fall müssen Sie ein neues Unterverzeichnis unter tests erstellen.

Zur Verdeutlichung sehen Sie hier eine typische Verzeichnisstruktur für Komponenten mit einem einzelnen Ordner „tests“:

\
 <component source root>
  \-- Android.bp (component makefile)
  \-- AndroidTest.xml (test config file)
  \-- src (component source)
  |    \-- foo.cpp
  |    \-- ...
  \-- tests (test source root)
      \-- Android.bp (test makefile)
      \-- src (test source)
          \-- foo_test.cpp
          \-- ...

Hier ist eine typische Verzeichnisstruktur für Komponenten mit mehreren Testquellen. Verzeichnisse:

\
 <component source root>
  \-- Android.bp (component makefile)
  \-- AndroidTest.xml (test config file)
  \-- src (component source)
  |    \-- foo.cpp
  |    \-- ...
  \-- tests (test source root)
      \-- Android.bp (test makefile)
      \-- testFoo (sub test source root)
      |   \-- Android.bp (sub test makefile)
      |   \-- src (sub test source)
      |       \-- test_foo.cpp
      |       \-- ...
      \-- testBar
      |   \-- Android.bp
      |   \-- src
      |       \-- test_bar.cpp
      |       \-- ...
      \-- ...

Unabhängig von der Struktur füllen Sie das Verzeichnis tests oder dem neu erstellten Unterverzeichnis mit Dateien, die denen im native ähneln in der Gerrit-Änderung des Beispiels. In den folgenden Abschnitten erfahren Sie, weitere Details zu den einzelnen Dateien.

Quellcode

Siehe Hello World GTest finden Sie ein Beispiel.

Der Quellcode für dieses Beispiel ist hier annotiert:

#include <gtest/gtest.h>

Headerdatei für GTest Die Abhängigkeit der Include-Datei wird automatisch durch die Verwendung von BUILD_NATIVE_TEST im Makefile aufgelöst.

#include <stdio.h>

TEST(HelloWorldTest, PrintHelloWorld) {
    printf("Hello, World!");
}

GTests werden mit dem Makro TEST geschrieben: Der erste Parameter ist der Testfall. und dann der Testname. Zusammen mit dem Testbinärnamen bilden sie den folgende Hierarchie im Ergebnis-Dashboard:

<test binary 1>
| \-- <test case 1>
| |   \-- <test 1>
| |   \-- <test 2>
| |   \-- ...
| \-- <test case 2>
| |   \-- <test 1>
| |   \-- ...
| \-- ...
<test binary 2>
|
...

Weitere Informationen zum Schreiben von Tests mit GTest finden Sie in der GTest-Dokumentation.

Einfache Konfigurationsdatei

Jedes neue Testmodul muss eine Konfigurationsdatei haben, das Build-System mit Modulmetadaten, Abhängigkeiten zur Kompilierungszeit und Paketerstellung Anleitung. In den meisten Fällen ist die Option für die Blueprint-Datei auf Songbasis ausreichend. Weitere Informationen finden Sie unter Einfache Testkonfiguration.

Komplexe Konfigurationsdatei

Wenn Sie stattdessen die Handelsföderation verwenden möchten, schreiben Sie eine Testkonfiguration -Datei für das Android-Test-Harnisch Trade Federation.

In der Testkonfiguration können spezielle Geräteeinrichtungsoptionen und Standardeinstellungen für die Bereitstellung der Testklasse.

Lokal erstellen und testen

Für die häufigsten Anwendungsfälle Atest:

Bei komplexeren Fällen, die eine umfangreichere Anpassung erfordern, folgen Sie der Anleitung zur Instrumentierung.