Testy hosta JAR powinny zostać zaimplementowane, aby zapewnić pełne pokrycie kodu oprogramowania. Postępuj zgodnie z instrukcjami tworzenia lokalnych testów jednostkowych . Napisz małe testy jednostkowe, aby zweryfikować konkretną funkcję i nic więcej.
Przykład
Poniższy plik Blueprint zawiera prosty przykład testu hosta Hello World JAR, który można skopiować i dostosować do własnych potrzeb: platform_testing/tests/example/jarhosttest/Android.bp
Odpowiada to rzeczywistemu kodowi testu, który można znaleźć pod adresem: platform_testing/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java
Dla wygody dołą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 zastosowania w: frameworks/base/tools/powermodel/Android.bp
Ustawienia
Poniżej znajdują się objaśnienia następujących ustawień:
Ustawienie
name
jest wymagane, gdy określony jest typ modułujava_test_host
(na początku bloku). To ustawienie nadaje modułowi nazwę, a wynikowy plik JAR ma taką samą nazwę i przyrostek.jar
. W poniższym przykładzie wynikowy testowy plik JAR ma nazwęHelloWorldHostTest.jar
. Ponadto to ustawienie definiuje również nazwę docelową make dla twojego modułu, dzięki czemu możesz 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 uprząż testową Federacji Handlowej. Można tutaj dodać inne zestawy testów, takie jak CTS, aby można było udostępnić test testowy JAR hosta.test_suites: ["general-tests"],
Ustawienie
static_libs
instruuje system kompilacji, aby dołączył zawartość nazwanych modułów do wynikowego pakietu APK bieżącego modułu. Oznacza to, że każdy nazwany moduł powinien wyprodukować plik.jar
. Zawartość modułu jest używana do rozwiązywania odwołań do ścieżki klas w czasie kompilacji i włączana do wynikowego pakietu APK.static_libs: [ "junit", ],