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.
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.
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:
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:
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.
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.
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 :
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:
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.
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.
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.