Pular para o conteúdo principal

Teste Databricks Notebook

Esta página descreve brevemente algumas técnicas que são úteis para testar o código diretamente no Databricks Notebook. Você pode usar esses métodos separadamente ou em conjunto.

Para obter um passo a passo detalhado sobre como configurar e organizar funções e testes de unidade no Databricks Notebook, consulte Testes de unidade para o Notebook.

Muitas bibliotecas de teste de unidade funcionam diretamente no Notebook. Por exemplo, o senhor pode usar o pacote integrado Python unittest para testar o código do Notebook.

Python
def reverse(s):
return s[::-1]

import unittest

class TestHelpers(unittest.TestCase):
def test_reverse(self):
self.assertEqual(reverse('abc'), 'cba')

r = unittest.main(argv=[''], verbosity=2, exit=False)
assert r.result.wasSuccessful(), 'Test failed; see logs above'

As falhas de teste aparecem na área de saída da célula.

Falha no teste de unidade

Use os widgets do site Databricks para selecionar o modo Notebook

O senhor pode usar widgets para distinguir as invocações de teste das invocações normais em um único Notebook. O código a seguir produz o exemplo mostrado na captura de tela:

Python
dbutils.widgets.dropdown("Mode", "Test", ["Test", "Normal"])

def reverse(s):
return s[::-1]

if dbutils.widgets.get('Mode') == 'Test':
assert reverse('abc') == 'cba'
print('Tests passed')
else:
print(reverse('desrever'))

A primeira linha gera o Mode dropdown menu:

Execução personalizada do widget

Ocultar código de teste e resultados

Para ocultar o código e os resultados do teste, selecione Ocultar código ou Ocultar resultado no menu de ações da célula. Os erros são exibidos mesmo se os resultados estiverem ocultos.

programar testes para execução automática

Para executar testes periódica e automaticamente, o senhor pode usar o Notebook agendado. É possível configurar o Job para enviar um e-mail de notificação para um endereço email que o senhor especificar.

Teste agendado do Notebook

Separe o código de teste do Notebook

O senhor pode manter o código de teste separado do Notebook usando as pastas %run ou Databricks Git . Quando se usa %run, o código de teste é incluído em um Notebook separado que é chamado de outro Notebook. Ao usar as pastas Databricks Git , o senhor pode manter o código de teste em arquivos de código-fonte que não sejam do Notebook.

Esta seção mostra alguns exemplos de uso das pastas %run e Databricks Git para separar o código de teste do Notebook.

Uso %run

A captura de tela abaixo mostra como usar o site %run para executar um Notebook a partir de outro Notebook. Para obter mais informações sobre o uso do site %run, consulte Use %run to import a Notebook. O código usado para gerar os exemplos é mostrado após a captura de tela.

Separando o código de teste

Aqui está o código usado no exemplo. Este código pressupõe que o Notebook shared-code-Notebook e o shared-code-Notebook-test estejam na mesma pasta workspace.

Notebook de código compartilhado :

Python
def reverse(s):
return s[::-1]

código compartilhado - teste de notebook :

Em uma célula:

%run ./shared-code-notebook

Em uma célula subsequente:

Python
import unittest

class TestHelpers(unittest.TestCase):
def test_reverse(self):
self.assertEqual(reverse('abc'), 'cba')

r = unittest.main(argv=[''], verbosity=2, exit=False)
assert r.result.wasSuccessful(), 'Test failed; see logs above'

Usar as pastas Git da Databricks

Para o código armazenado em uma pastaDatabricks Git, o senhor pode chamar o teste e executá-lo diretamente de um Notebook.

Notebook invocação de teste

O senhor também pode usar o terminal da Web para executar testes em arquivos de código-fonte da mesma forma que faria em seu computador local.

Invocação de teste das pastas Git

Configurar um fluxo de trabalho no estilo CI/CD

Para o Notebook em uma pastaDatabricks Git, o senhor pode definir um fluxo de trabalho no estilo CI/CDconfigurando os testes do Notebook para execução em cada commit. Veja Databricks GitHub Actions.