Notas da versão do teste de captura de tela da visualização do Compose

0.0.1-alpha15

Esta versão inclui as seguintes correções de bugs:

Problema Descrição
problema 500417360 Correção de uma falha de inicialização (NoClassDefFoundError) ao executar prévias com Kotlin 2.1 ou mais recente devido a uma dependência kotlin-stdlib ausente no carregador de classes isolado do framework Layoutlib.
Problema 384188032 Correção de uma falha de renderização ao inflar um objeto ViewHolder dentro de uma fábrica AndroidView combinável.
Problema 351302272 Falhas resolvidas no carregamento de recursos drawable em visualizações em que os recursos residem em módulos de projetos irmãos ou dependentes.
Problema 482664893 Garantia de que as tarefas de validação falham adequadamente quando os testes de captura de tela geram exceções, em vez de serem concluídas incorretamente com uma captura de tela desatualizada.
Problema 497675618 Instrumentação compatível de classes combináveis por agentes de cobertura da JVM (como o JaCoCo).
Problema 498545960 Nomes de arquivos internos removidos (por exemplo, ImageVerifier.kt) de stack traces de erros do console JUnit para esclarecer a saída de depuração.
Problema 385613865 Remoção do uso de caminhos absolutos para imagens no arquivo XML de resultados do teste, substituindo-os por caminhos relativos.
Problema 513276596 Garantia de que falhas de renderização reprovam corretamente as tarefas de teste de captura de tela, em vez de serem aprovadas silenciosamente com uma captura de tela em branco.
Problema 340639802 Foram resolvidos conflitos de resolução de métodos de prévia em que os testes eram correspondidos incorretamente a nomes de métodos totalmente qualificados correspondentes no conjunto de origem principal.

0.0.1-alpha14

Esta versão inclui as seguintes correções de bugs e melhorias de performance:

Problema Descrição
Problema 469819154 Correção de vazamentos de memória no renderizador do Compose.
Problema 470058578 Corrigimos travamentos na interface e erros de memória ao atualizar imagens de referência.
Problema 422412664 Correção dos erros "a linha de comando excede os limites do sistema operacional" no Windows e no GitHub Actions.
Problema 437223807 Correção de problemas de resolução de recursos e ativos em projetos de vários módulos.
Problema 464899800 Correção de um conflito de plug-in do Gradle causado por uma colisão de nomes em version.properties.
Problema 482433854 Correção de erros de inicialização para elementos combináveis usando kotlin-reflect ou serialização.

0.0.1-alpha13

Esta versão inclui:

  • Compatibilidade com JDK 17 ou versões mais recentes.
  • Correções de bugs e melhor integração com o Android Studio.

0.0.1-alpha12

Esta versão inclui:

  • Compatibilidade com o Plug-in do Android para Gradle (AGP) 9.0.
  • Suporte para execução de testes de captura de tela no JDK 24 e versões mais recentes.
  • Suporte para configurar o tamanho máximo do heap.
  • Correção de falhas de renderização e melhoria da estabilidade do teste.
  • Melhoramos os relatórios para incluir a diferença percentual e outros metadados relacionados a imagens novas e de referência.

0.0.1-alpha11

Esta versão inclui:

  • Compatibilidade com o Plug-in do Android para Gradle (AGP) 8.13.
  • Adicionamos suporte para analisar elementos gráficos XML com valores decimais, independente da localidade da máquina host.
  • Para uma máquina host que usa o JDK 24 ou mais recente, o JDK compatível (11 a 23) será selecionado, desde que um esteja instalado.

0.0.1-alpha10

Esta versão inclui:

  • A partir dessa versão, é necessário marcar todas as funções de prévia com a anotação @PreviewTest. As prévias sem a anotação não serão executadas.

  • O diretório de imagens de referência mudou de {module}/src/{variant}/screenshotTest/reference para {module}/src/screenshotTest{Variant}/reference. Isso garante que as imagens de referência geradas não façam parte do código de produção e estejam alinhadas com a estrutura de diretórios de outros tipos de teste.

  • A tarefa {variant}PreviewScreenshotRender é removida. A renderização de imagens é migrada para o mecanismo de teste do JUnit.

  • A tarefa update{Variant}ScreenshotTest compara novas imagens de renderização com imagens de referência antes de atualizar. Ele só atualiza imagens que têm diferenças maiores que um limite especificado. A flag de linha de comando --updateFilter foi removida.

0.0.1-alpha06

Esta versão inclui:

Limite de diferença de imagem: essa nova configuração global permite ter um controle mais preciso sobre as comparações de capturas de tela. Para configurar, atualize o build.gradle.kts do módulo:

    testOptions {
        screenshotTests {
            imageDifferenceThreshold = 0.0001f // 0.01%
        }
    }

Esse limite será aplicado a todos os testes de captura de tela definidos no módulo.

  • Correções de bugs: alguns bugs do renderizador do Compose e suporte adicionado para Compose vazio.
  • Melhorias de performance: o algoritmo de diferenciação de imagens foi atualizado para ser mais rápido.