Aller au contenu principal

Tester les notebooks Databricks

Vous pouvez tester du code directement dans les Notebook Databricks à l’aide de bibliothèques intégrées comme unittest, de widgets pour basculer entre les exécutions de test et normales, et de Jobs planifiés. Utilisez ces techniques séparément ou conjointement.

Pour une présentation détaillée de la configuration et de l'organisation des fonctions et des tests unitaires dans les notebooks Databricks, consultez Tests unitaires pour les notebooks Databricks.

De nombreuses bibliothèques de tests unitaires fonctionnent directement au sein du notebook. Par exemple, vous pouvez utiliser le package Python unittest intégré pour tester le code du notebook.

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

Les échecs de test apparaissent dans la zone de sortie de la cellule.

Échec du test unitaire

Utiliser les widgets Databricks pour sélectionner le mode du Notebook

Vous pouvez utiliser des widgets pour distinguer les invocations de test des invocations normales dans un seul notebook. Le code suivant produit l'exemple montré dans la capture d'écran :

Python
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 première ligne génère le menu déroulant **Mode** :

Personnaliser l'exécution du widget

Masquer le code et les résultats des tests

Pour masquer le code de test et les résultats, sélectionnez **Masquer le code** ou **Masquer le résultat** dans le menu d'actions de cellule. Les erreurs sont affichées même si les résultats sont masqués.

Planifiez les tests à exécuter automatiquement.

Pour exécuter des tests périodiquement et automatiquement, vous pouvez utiliser des Notebooks planifiés. Vous pouvez configurer le Job pour envoyer des e-mails de notification à une adresse e-mail que vous spécifiez.

Test de notebook planifié

Séparer le code de test du notebook.

Vous pouvez séparer votre code de test de votre notebook en utilisant %run ou les dossiers Git Databricks. Lorsque vous utilisez %run, le code de test est inclus dans un Notebook séparé que vous appelez depuis un autre Notebook. Lorsque vous utilisez les dossiers Git Databricks, vous pouvez garder le code de test dans des fichiers de code source non-Notebook.

Cette section présente quelques exemples d'utilisation de %run et des dossiers Git Databricks pour séparer votre code de test du Notebook.

Utilisation %run

La capture d'écran ci-dessous montre comment utiliser %run pour exécuter un notebook à partir d'un autre notebook. Pour plus d’informations sur l’utilisation de %run, voir Utiliser %run pour importer un Notebook. Le code utilisé pour générer les exemples est affiché après la capture d'écran.

Code de test initial

Séparation du code de test

Voici le code utilisé dans l'exemple. Ce code suppose que les Notebooks **shared-code-notebook** et **shared-code-notebook-test** se trouvent dans le même dossier Workspace.

notebook de code partagé :

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

shared-code-notebook-test :

Dans une cellule :

Python
%run ./shared-code-notebook

Dans une cellule suivante :

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

Utiliser les dossiers Git Databricks

Pour le code stocké dans un dossier Git Databricks, vous pouvez appeler le test et l'exécuter directement à partir d'un notebook.

Invocation de test de Notebook

Vous pouvez également utiliser le terminal web pour exécuter des tests dans des fichiers de code source, comme vous le feriez sur votre machine locale.

Invocation de test de dossiers Git

Configurer un workflow de style CI/CD

Pour les Notebooks dans un dossier Git Databricks, vous pouvez configurer un workflow de type CI/CD en configurant des tests de Notebook à exécuter pour chaque commit. Consultez Databricks GitHub Actions.