Testy hosta archiwum Java (JAR) należy wdrożyć, aby zapewnić pełne pokrycie kodu oprogramowania. Postępuj zgodnie z instrukcjami tworzenia lokalnych testów jednostkowych. Pisz małe testy jednostkowe, aby sprawdzać tylko konkretną funkcję.
Przykład
Ten plik Blueprint zawiera prosty przykład testu hosta JAR Hello World, który możesz skopiować i dostosować do swoich potrzeb:platform_testing/tests/example/jarhosttest/Android.bp
Odpowiada to rzeczywistemu kodowi testu, który znajdziesz w tym miejscu:platform_testing/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java
Dla wygody dołączyliśmy 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 JAR
host. Przykład użycia znajdziesz w tym pliku:frameworks/base/tools/powermodel/Android.bp
Ustawienia
Poniżej znajdziesz wyjaśnienia tych ustawień:
Ustawienie
name
jest wymagane, gdy określony jest typ modułujava_test_host
(na początku bloku). To ustawienie nadaje nazwę modułowi, a wynikowy plik JAR ma taką samą nazwę i sufiks.jar
. W przykładzie poniżej wynikowy plik JAR testu ma nazwęHelloWorldHostTest.jar
. Dodatkowo to ustawienie definiuje nazwę celu kompilacji modułu, dzięki czemu możesz użyć poleceniamake [options] <HelloWorldHostTest>
do skompilowania modułu testowego i wszystkich jego zależności.name: "HelloWorldHostTest",
Ustawienie
test_suites
sprawia, że test jest łatwo wykrywalny przez platformę testową Trade Federation. Można tu dodać inne zestawy testów, np. CTS, aby można było udostępniać test hosta JAR.test_suites: ["general-tests"],
Ustawienie
static_libs
nakazuje systemowi kompilacji włączenie zawartości nazwanych modułów do wynikowego pliku APK bieżącego modułu. Oznacza to, że każdy nazwany moduł powinien generować plik.jar
. Treści modułu są używane do rozwiązywania odwołań do ścieżki klasy w czasie kompilacji i są włączane do wynikowego pliku APK.static_libs: [ "junit", ],