Os testes de host de arquivo Java (JAR, na sigla em inglês) precisam ser implementados para fornecer cobertura completa do código do software. Siga as instruções para criar testes de unidade local. Crie pequenos testes de unidade para validar uma função específica e nada mais.
Exemplo
O arquivo Blueprint a seguir fornece um exemplo de teste de host JAR simples do 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 snapshot do arquivo de blueprint está incluído aqui para sua 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. Confira um exemplo de uso em:
frameworks/base/tools/powermodel/Android.bp
Configurações
Veja abaixo as explicações sobre as configurações a seguir:
A configuração
name
é necessária quando o tipo de módulojava_test_host
é especificado (no início do bloco). Essa configuração dá um nome ao módulo, e o JAR resultante tem o mesmo nome e um sufixo.jar
. No exemplo abaixo,o JAR de teste resultante é chamado deHelloWorldHostTest.jar
. Além disso, essa configuração também define um nome de destino de make para o módulo. Assim, é possível usarmake [options] <HelloWorldHostTest>
para criar o módulo de teste e todas as dependências dele.name: "HelloWorldHostTest",
A configuração
test_suites
facilita a descoberta do teste pelo harness de teste da Trade Federation. Outros pacotes de testes podem ser adicionados aqui, como CTS, para que o teste de host JAR possa ser compartilhado.test_suites: ["general-tests"],
A configuração
static_libs
instrui o sistema de build 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", ],