teste

Uso

teste: historic_revenue_is_accurate {
explore_source: pedidos {
coluna: total_revenue {
field
Hierarquia
test

- ou -

test

- ou -

test
Valor padrão
Nenhuma

Aceita
O identificador do teste de dados, além de subparâmetros que definem as declarações e consultas do teste.

Definição

Consulte o tópico Comunidades de teste de dados do LookML: recomendações e práticas recomendadas para mais dicas e informações sobre testes de dados.

O Looker tem o validador LookML para verificar se o código LookML é válido e o Content Validator, que verifica referências de objetos entre o conteúdo e o modelo.

Além desses validadores, o parâmetro test permite validar a lógica do modelo. Para cada teste de dados, você cria uma consulta e uma instrução de declaração yesno. O teste de dados executa a consulta de teste e verifica se a declaração é verdadeira para cada linha da consulta de teste. Se a instrução de declaração retornar yes para cada linha da consulta de teste, o teste de dados vai ser aprovado.

Se as configurações do projeto estiverem definidas para exigir que os testes de dados sejam aprovados antes da implantação na produção, o ambiente de desenvolvimento integrado vai apresentar o botão Executar testes depois de confirmar as mudanças no projeto. Os desenvolvedores do LookML precisam executar os testes de dados antes de implantar mudanças na produção.

Independentemente de o projeto exigir testes de dados antes da implantação na produção, um desenvolvedor do LookML no Modo de desenvolvimento pode executar testes de dados a qualquer momento para verificar a lógica do modelo.

É possível criar testes de dados em arquivos de modelo, arquivos de visualização ou arquivos de teste de dados dedicados e separados. Ao usar um arquivo dedicado para hospedar seus testes de dados, lembre-se de include usar o arquivo de teste de dados em qualquer arquivo de modelo ou de visualização em que você queira executar os testes de dados.

Um teste de dados não pode ter o mesmo nome e explore_source de outro teste de dados no mesmo projeto. Se você estiver usando o mesmo explore_source para vários testes de dados no projeto, verifique se os nomes dos testes de dados são exclusivos.

O parâmetro test tem os seguintes subparâmetros:

  • explore_source: define a consulta a ser usada no teste de dados.
  • assert: define uma expressão do Looker que é executada em cada linha da consulta de teste para verificar os dados.

Depois de definir o LookML para seu teste, é possível executá-lo para verificar se o teste funciona corretamente e ver se a lógica do modelo é aprovada no teste. É necessário estar no Modo de desenvolvimento para executar testes de dados.

Há várias maneiras de iniciar testes de dados em um projeto:

  1. Se as configurações do projeto estiverem definidas para exigir que os testes de dados sejam aprovados antes de implantar os arquivos na produção, o ambiente de desenvolvimento integrado vai apresentar o botão Executar testes quando você confirmar mudanças no projeto. Isso executará todos os testes do seu projeto, independentemente de qual arquivo defina o teste. É preciso passar nos testes de dados antes de implantar as alterações na produção.
  2. Clique no botão Executar testes de dados no painel Integridade do projeto. Isso vai executar todos os testes de dados no projeto, independentemente de qual arquivo defina o teste.
  3. Selecione a opção Run LookML Tests no menu do arquivo. Isso vai executar apenas os testes definidos no arquivo atual.

Depois de executar os testes de dados, o painel Project Health vai mostrar o progresso e os resultados:

Você pode clicar no link Explorar consulta para abrir uma opção Explorar com a consulta definida no teste de dados.

explore_source

O parâmetro explore_source em um teste de dados usa a mesma sintaxe e lógica do parâmetro explore_source de uma tabela derivada. A única diferença é que o explore_source do teste de dados não é compatível com os subparâmetros derived_column, bind_filters e bind_all_filters.

Dica útil: uma maneira fácil de acessar o LookML explore_source é usar um Explore para criar sua consulta, selecionar Get LookML no menu de engrenagem do Explore e clicar na guia Derived Table para gerar o LookML para a consulta. Consulte nossa documentação sobre como criar tabelas derivadas nativas para mais informações.

Observe o seguinte para o explore_source de um teste de dados:

  • A consulta explore_source de um teste de dados é uma consulta padrão do Looker, ou seja,a consulta explore_source do teste tem um limite de 5.000 linhas. Verifique se a consulta não ultrapassa 5.000 linhas para que você receba um conjunto completo de resultados a ser testado. É possível incorporar filtros ou classificação na explore_source para reduzir o número de linhas na consulta ou para colocar as linhas relevantes no topo da consulta.

  • Um explore com extension: required não pode ser usado como explore_source para um teste de dados. O LookML Validator vai gerar um erro que não encontra o explore_source.

assert

O subparâmetro assert define os critérios pelos quais o resultado da consulta explore_source é considerado válido. O subparâmetro expression aceita uma expressão Looker que resulta em um yesno (booleano). Depois que a consulta explore_source é executada, a expressão da declaração é avaliada para cada linha do conjunto de resultados da consulta. Se houver uma resposta no para qualquer linha da consulta, o teste de dados falhará. Se a consulta tiver erros, o teste também falhará.

Um teste pode ter várias declarações assert. Para que o teste seja aprovado, cada declaração precisa ser verdadeira para cada linha da consulta explore_source.

Dica útil: use a caixa de diálogo cálculos da tabela para testar a sintaxe da expressão do Looker a ser usada no parâmetro expression do teste.

Para uso em testes de dados, os campos na expressão do Looker precisam ter o escopo completo, o que significa que eles são especificados no formato view_name.field_name. Por exemplo, a expressão abaixo declara o campo como aircraft_engine_types.aircraft_engine_type_id:

assert: engine_type_id_not_null {
  expression: NOT is_null(${aircraft_engine_types.aircraft_engine_type_id}) ;;
}

Examples

Garantir que uma chave primária seja exclusiva

O teste de dados a seguir cria uma consulta a partir da exploração orders e define um expression para testar se os IDs de pedidos são únicos no conjunto de resultados. A consulta explore_source cria uma contagem de linhas associadas a cada ID no banco de dados. Se o ID for exclusivo, o banco de dados deve ter apenas uma linha. Além disso, ela classifica a contagem e limita o resultado a uma linha, de modo que a resposta da consulta seja o ID com a maior contagem. Se algum ID tem uma contagem maior que 1, sabemos que há várias linhas para ele e, por isso, ele não é exclusivo. Se esse for o caso, o teste de dados vai falhar.

test: order_id_is_unique {
  explore_source: orders {
    column: id {}
    column: count {}
    sorts: [orders.count: desc]
    limit: 1
  }
  assert: order_id_is_unique {
    expression: ${orders.count} = 1 ;;
  }

Como verificar um valor conhecido

No próximo teste de dados,garantimos que o valor da receita de 2017 seja sempre de US $626.000. Nesse conjunto de dados, há um valor conhecido que nunca deve mudar.

test: historic_revenue_is_accurate {
  explore_source: orders {
    column: total_revenue {
      field: orders.total_revenue
    }
    filters: [orders.created_date: "2017"]
  }
  assert: revenue_is_expected_value {
    expression: ${orders.total_revenue} = 626000 ;;
  }
}

Confirmando que não há valores nulos

O próximo teste verifica se não há valores nulos nos dados. Esse explore_source usa um sort para garantir que os nulos sejam retornados na parte de cima da consulta. A classificação de valores nulos pode variar com base no seu dialeto. O teste abaixo usa desc: yes como exemplo.


test: status_is_not_null {
  explore_source: orders {
    column: status {}
    sorts: [orders.status: desc]
    limit: 1
  }
  assert: status_is_not_null {
    expression: NOT is_null(${orders.status}) ;;
  }
}