Testes de host JAR (Java)

Testes de host JAR devem ser implementados para fornecer cobertura de código completa de seu software. Siga as instruções para Construir 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 de teste de host JAR Hello World simples 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 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. Veja um exemplo de uso em: frameworks/base/tools/powermodel/Android.bp

Configurações

Veja abaixo as explicações sobre as seguintes configurações:

  • A configuração name é necessária quando o tipo de módulo java_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 é denominado HelloWorldHostTest.jar . Além disso, essa configuração também define um nome de destino make para seu módulo, para que você possa usar make [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 equipamento de teste da Trade Federation. Outros conjuntos de teste podem ser incluídos 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",
    ],