Testes de host de JAR

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 uma unidade local. de testes. 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 Hello World JAR simples copiar e adaptar de acordo com suas necessidades: platform_testing/tests/example/jarhosttest/Android.bp (link em inglês)

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 esse é um arquivo JAR. teste do host. Veja um exemplo de uso em: frameworks/base/tools/powermodel/Android.bp (em inglês)

Configurações

Confira abaixo as explicações das 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 módulo, e o JAR resultante tem o mesmo nome e um sufixo .jar. Na abaixo,o JAR de teste resultante é chamado de HelloWorldHostTest.jar. Em Além disso, essa configuração também define um nome de destino para seu módulo, para que que você pode usar make [options] <HelloWorldHostTest> para criar seu teste e todas as respectivas dependências.

    name: "HelloWorldHostTest",
    
  • A configuração test_suites facilita a descoberta do teste pelo Trade. Arcabouço de testes de federação. Outros conjuntos de testes podem ser adicionados aqui, como CTS, para que o teste de host do JAR possa ser compartilhado.

    test_suites: ["general-tests"],
    
  • A configuração static_libs instrui o sistema de build a incorporar a 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 ao tempo de compilação e incorporado ao APK resultante.

    static_libs: [
        "junit",
    ],