Testy hosta JAR

Aby zapewnić pełną obsługę oprogramowania, warto wdrożyć testy hosta archiwum Java (JAR). Wykonaj instrukcje, aby utworzyć testy jednostek lokalnych. pisać małe testy jednostkowe, które weryfikują tylko jedną funkcję,

Przykład

Ten plik Blueprint zawiera prosty przykład testu hosta pliku JAR Hello World, który możesz skopiować i dostosować do swoich potrzeb: platform_testing/tests/example/jarhosttest/Android.bp

Odpowiada on rzeczywistemu kodowi testów, który znajduje się w folderze platform_testing/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java.

Dla wygody użytkowników zamieszczamy tutaj migawkę pliku projektu:

java_test_host {
    name: "HelloWorldHostTest",

    test_suites: ["general-tests"],

    srcs: ["test/**/*.java"],

    static_libs: [
        "junit",
        "mockito",
    ],
}

Deklaracja java_test_host na początku wskazuje, że jest to test hosta JAR. Przykład użycia: frameworks/base/tools/powermodel/Android.bp

Ustawienia

Poniżej znajdziesz objaśnienia tych ustawień:

  • Ustawienie name jest wymagane, gdy określony jest typ modułu java_test_host (na początku bloku). To ustawienie nadaje nazwę modułowi, a wygenerowany plik JAR ma tę samą nazwę z dodatkiem sufiksu .jar. W przykładzie poniżej plik JAR testu ma nazwę HelloWorldHostTest.jar. To ustawienie definiuje też nazwę docelową make dla modułu, dzięki czemu możesz użyć make [options] <HelloWorldHostTest> do skompilowania modułu testowego i wszystkich jego zależności.

    name: "HelloWorldHostTest",
    
  • Ustawienie test_suites sprawia, że test jest łatwy do znalezienia przez narzędzie testowe Trade Federation. Można tu dodać inne zestawy testów, np. CTS, aby udostępnić test hosta JAR.

    test_suites: ["general-tests"],
    
  • Ustawienie static_libs nakazuje systemowi kompilacji uwzględnienie zawartości wymienionych modułów w wygenerowanym pliku APK bieżącego modułu. Oznacza to, że każdy moduł o nazwie powinien wygenerować plik .jar. Treść modułu jest używana do rozwiązywania odwołań do ścieżki klasy podczas kompilacji i jest włączana do tworzonego pliku APK.

    static_libs: [
        "junit",
    ],