Testy hosta JAR, testy hosta JAR, testy hosta JAR, testy hosta JAR

Należy wdrożyć testy hosta archiwum Java (JAR), aby zapewnić pełne pokrycie kodu oprogramowania. Postępuj zgodnie z instrukcjami dotyczącymi tworzenia lokalnych testów jednostkowych . Napisz małe testy jednostkowe, aby sprawdzić poprawność określonej funkcji i nic więcej.

Przykład

Poniższy plik Blueprint zawiera prosty przykład testu hosta JAR Hello World, który można skopiować i dostosować do własnych potrzeb: platforma_testing/tests/example/jarhosttest/Android.bp

Odpowiada to rzeczywistemu kodowi testowemu znalezionemu w: platform_testing/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java

Dla wygody załączono migawkę pliku Blueprint:

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. Zobacz przykład jego użycia w: frameworks/base/tools/powermodel/Android.bp

Ustawienia

Poniżej znajdują się wyjaśnienia dotyczące następujących ustawień:

  • Ustawienie name jest wymagane w przypadku określenia typu modułu java_test_host (na początku bloku). To ustawienie nadaje nazwę modułowi, a powstały plik JAR ma tę samą nazwę i przyrostek .jar . W poniższym przykładzie wynikowy plik JAR nosi nazwę HelloWorldHostTest.jar . Ponadto to ustawienie definiuje również nazwę docelową make dla modułu, dzięki czemu można użyć make [options] <HelloWorldHostTest> do zbudowania modułu testowego i wszystkich jego zależności.

    name: "HelloWorldHostTest",
    
  • Ustawienie test_suites sprawia, że ​​test jest łatwo wykrywalny przez wiązkę testową Federacji Handlowej. Można tutaj dodać inne zestawy testów, takie jak CTS, aby można było udostępniać test testowy hosta JAR.

    test_suites: ["general-tests"],
    
  • Ustawienie static_libs instruuje system kompilacji, aby włączył zawartość nazwanych modułów do wynikowego pliku APK bieżącego modułu. Oznacza to, że oczekuje się, że każdy nazwany moduł wygeneruje plik .jar . Zawartość modułu jest używana do rozwiązywania odniesień do ścieżek klas podczas kompilacji i włączana do wynikowego pliku APK.

    static_libs: [
        "junit",
    ],