Probar cuadernos de Databricks

En esta página se describen brevemente algunas técnicas que son útiles al probar el código directamente en cuadernos de Databricks. Puede usar estos métodos de forma conjunta o independiente.

Para ver un tutorial detallado sobre cómo configurar y organizar funciones y pruebas unitarias en cuadernos de Databricks, consulte Prueba unitaria para cuadernos.

Muchas bibliotecas de pruebas unitarias funcionan directamente dentro del cuaderno. Por ejemplo, puede usar el paquete unittest de Python integrado para probar el código del cuaderno.

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'

Los errores de la prueba aparecen en el área de salida de la celda.

Error de prueba unitaria

Uso de widgets de Databricks para seleccionar el modo de cuaderno

Puede usar widgets para distinguir las invocaciones de prueba de las invocaciones normales en un único cuaderno. El código siguiente genera el ejemplo que se muestra en la captura de pantalla:

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'))

La primera línea genera el menú desplegable Modo:

Ejecución de personalización de widget

Ocultar código de prueba y resultados

Para ocultar el código de prueba y los resultados, seleccione Ocultar código u Ocultar resultado en el menú de acciones de celda. Los errores se muestran incluso si los resultados están ocultos.

Programar pruebas para que se ejecuten automáticamente

Para ejecutar pruebas de manera periódica y automática, puede usar cuadernos programados. Puede configurar el trabajo para que envíe correos electrónicos de notificación a una dirección que especifique.

Prueba de cuadernos programados

Separación del código de prueba del cuaderno

Puede mantener el código de prueba separado del cuaderno mediante %run o carpetas de Git de Databricks. Cuando se usa %run, el código de prueba se incluye en un cuaderno independiente al que se llama desde otro cuaderno. Al usar carpetas de Git de Databricks, puede mantener el código de prueba en archivos de código fuente que no son de cuaderno.

En esta sección se muestran algunos ejemplos de uso %run y carpetas de Git de Databricks para separar el código de prueba del cuaderno.

Use %run

En la captura de pantalla siguiente se muestra cómo usar %run para ejecutar un cuaderno desde otro cuaderno. Para obtener más información sobre el uso de %run, consulte Uso de %run para importar un cuaderno. El código usado para generar los ejemplos se muestra después de la captura de pantalla.

Separar el código de prueba

Este es el código usado en el ejemplo. En este código se supone que los cuadernos shared-code-notebook y shared-code-notebook-test están en la misma carpeta del área de trabajo.

shared-code-notebook:

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

shared-code-notebook-test:

En una celda:

%run ./shared-code-notebook

En una celda posterior:

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'

Uso de carpetas de Git de Databricks

Para el código almacenado en una carpeta de Git de Databricks, puede llamar a la prueba y ejecutarla directamente desde un cuaderno.

Invocación de pruebas de cuadernos

También puede usar el terminal web para ejecutar pruebas en archivos de código fuente del mismo modo que lo haría en el equipo local.

Invocación de pruebas de carpetas de Git

Configuración de un flujo de trabajo de estilo CI/CD

Para cuadernos en una carpeta de Git de Databricks, puede establecer un flujo de trabajo al estilo CI/CD configurando pruebas de cuadernos para que se ejecuten en cada confirmación. Consulte Acciones de GitHub en Databricks.