NotebookDatabricks de teste
Esta página descreve brevemente algumas técnicas que são úteis ao testar o código diretamente no Databricks Notebook. Você pode usar esses métodos separadamente ou juntos.
Para obter uma explicação detalhada de como configurar e organizar funções e testes de unidade no Databricks Notebook, consulte Teste de unidade para Notebook.
Muitas bibliotecas de teste de unidade funcionam diretamente no Notebook. Por exemplo, você pode usar o pacote `unittest` do Python integrado para testar o código 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 Databricks para selecionar o modo Notebook
Você pode usar widgets para distinguir invocações de teste de 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 menu dropdown Modo :
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 automaticamente
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.
Código de teste separado do Notebook
O senhor pode manter o código de teste separado do Notebook usando as pastas %run
ou Databricks Git. Quando o senhor usa %run
, o código de teste é incluído em um Notebook separado que o senhor chama de outro Notebook. Ao usar as pastas Git da Databricks, o senhor pode manter o código de teste em arquivos de código-fonte que não sejamNotebook .
Esta seção mostra alguns exemplos de uso das pastas %run
e Databricks Git para separar o código de teste do Notebook.
Usar %run
A captura de tela abaixo mostra como usar %run
para executar um Notebook de outro Notebook. Para obter mais informações sobre como usar %run
, consulte Use %run para importar um 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 assume que o Notebook shared-code-Notebook e o shared-code-Notebook-test estão na mesma pasta workspace .
código-compartilhado-Notebook:
def reverse(s):
return s[::-1]
código-compartilhado-Notebook-teste:
Em uma célula:
%run ./shared-code-notebook
Em uma célula subseqüente:
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 pasta Git da Databricks, o senhor pode chamar o teste e executá-lo diretamente de um site Notebook.
Você também pode usar o terminal web para executar testes em arquivos de código-fonte, assim como faria em sua máquina local.
Configure um fluxo de trabalho no estilo CI/CD
Para o Notebook em uma pasta Git da Databricks, o senhor pode definir um fluxo de trabalho no estilo CI/CD configurando Notebook testes para execução em cada commit. Consulte Databricks GitHub Actions.