testes de host JAR

Os testes de host de arquivo Java (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 unitários 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 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). Esta 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, esta 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 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 espera-se que cada módulo nomeado produza 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",
    ],