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.

Falha no teste de unidade

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 :

Execução de personalização 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 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.

Teste agendado Notebook

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.

Separando código de teste

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.

Invocação de teste 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.

Invocação de teste das pastas Git

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.