Testar notebooks Databricks
Esta página descreve brevemente algumas técnicas que são úteis ao testar o código diretamente em blocos de anotações Databricks. Você pode usar esses métodos separadamente ou juntos.
Para obter um passo a passo detalhado de como set e organizar funções e testes de unidade em notebooks Databricks, consulte Testes de unidade para notebooks.
Muitas bibliotecas de teste de unidade funcionam diretamente no bloco de anotações. Por exemplo, você pode usar o pacote Python unittest
interno para testar o código do bloco de anotações.
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.
Usar widgets Databricks para o modo de notebook select
Você pode usar widgets para distinguir invocações de teste de invocações normais em um único bloco de anotações. 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 menu suspenso Modo :
Ocultar código de teste e resultados
Para ocultar o código de teste e os resultados, selectOcultar Código ou Ocultar Resultado no menu de ações da célula . Os erros são exibidos mesmo se os resultados estiverem ocultos.
Agendar testes para serem executados automaticamente
Para executar testes periodicamente e automaticamente, você pode usar blocos de anotações agendados. Você pode configurar o trabalho para enviar e-mails de notificação para um endereço de e-mail que você especificar.
Separe o código de teste do bloco de anotações
Você pode manter seu código de teste separado do seu bloco de anotações usando as %run
pastas Git do Databricks. Quando você usa %run
o , o código de teste é incluído em um bloco de anotações separado que você chama de outro bloco de anotações. Ao usar pastas Databricks Git, você pode manter o código de teste em arquivos de código-fonte que não sejam do bloco de anotações.
Esta seção mostra alguns exemplos de uso %run
e pastas Databricks Git para separar seu código de teste do bloco de anotações.
Utilizar o comando %run
A captura de tela abaixo mostra como usar %run
para executar um bloco de anotações a partir de outro bloco de anotações. Para obter mais informações sobre como usar %run
o , consulte Usar %run para importar um bloco de anotações. O código usado para generate os exemplos é mostrado após a captura de tela.
Aqui está o código usado no exemplo. Esse código pressupõe que os blocos de anotações shared-code-notebook e shared-code-notebook-test estejam na mesma pasta de espaço de trabalho.
Bloco de anotações de código compartilhado:
def reverse(s):
return s[::-1]
shared-code-notebook-test:
Numa célula:
%run ./shared-code-notebook
Numa 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 pastas Git Databricks
Para código armazenado em uma pasta Databricks Git, você pode chamar o teste e executá-lo diretamente de um bloco de anotações.
Você também pode usar o terminal da Web para executar testes em arquivos de código-fonte, assim como faria em sua máquina local.
Set Configurar um fluxo de trabalho no estilo CI/CD
Para notebooks em uma pasta Git Databricks, você pode set um fluxo de trabalho no estilo CI/CD configurando testes de notebooks para serem executados a cada commit. Consulte Ações do GitHub do Databricks.