Os testes de host JAR devem ser implementados para fornecer cobertura completa do código do seu software. Siga as instruções para criar testes de unidade local . Escreva pequenos testes de unidade para validar uma função específica e nada mais.
Exemplo
O arquivo Blueprint a seguir fornece um exemplo simples de teste de host JAR Hello World para copiar e adaptar às suas necessidades: platform_testing/tests/example/jarhosttest/Android.bp
Isso corresponde ao código de teste real encontrado em: platform_testing/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java
Um instantâneo do arquivo Blueprint está incluído aqui por conveniência:
java_test_host {
name: "HelloWorldHostTest",
test_suites: ["general-tests"],
srcs: ["test/**/*.java"],
static_libs: [
"junit",
"mockito",
],
}
A declaração java_test_host
no início indica que este é um teste de host JAR. Veja um exemplo de seu uso em: frameworks/base/tools/powermodel/Android.bp
Configurações
Veja abaixo as explicações das seguintes configurações:
A configuração de
name
é necessária quando o tipo de módulojava_test_host
é especificado (no início do bloco). Essa configuração dá um nome ao seu módulo e o JAR resultante tem o mesmo nome e um sufixo.jar
. No exemplo abaixo, o JAR de teste resultante é denominadoHelloWorldHostTest.jar
. Além disso, essa configuração também define um nome de destino make para seu módulo, para que você possa usarmake [options] <HelloWorldHostTest>
para construir seu módulo de teste e todas as suas dependências.name: "HelloWorldHostTest",
A configuração
test_suites
torna o teste facilmente detectável pelo conjunto de testes da Federação de Comércio. Outros conjuntos de testes podem ser adicionados aqui, como CTS, para que o teste de teste do host JAR possa ser compartilhado.test_suites: ["general-tests"],
A configuração
static_libs
instrui o sistema de compilação a incorporar o conteúdo dos módulos nomeados no APK resultante do módulo atual. Isso significa que cada módulo nomeado deve produzir um arquivo.jar
. O conteúdo do módulo é usado para resolver referências de caminho de classe durante o tempo de compilação e incorporado ao APK resultante.static_libs: [ "junit", ],