Freigeben über


Testen von Databricks-Notebooks

Auf dieser Seite werden kurz einige Techniken beschrieben, die beim direkten Testen von Code in Databricks-Notebooks nützlich sind. Sie können diese Verfahren einzeln oder zusammen verwenden.

Eine ausführliche exemplarische Vorgehensweise zum Einrichten und Organisieren von Funktionen und Komponententests in Databricks-Notebooks finden Sie unter Komponententests für Notebooks.

Viele Komponententestbibliotheken funktionieren direkt im Notebook. Sie können beispielsweise das integrierte Python-Paket unittest verwenden, um Notebookcode zu testen.

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'

Testfehler werden im Ausgabebereich der Zelle angezeigt.

Fehler beim Komponententest

Verwenden von Databricks-Widgets zum Auswählen des Notebookmodus

Sie können Widgets verwenden, um Testaufrufe von normalen Aufrufen in einem einzelnen Notizbuch zu unterscheiden. Der folgende Code erzeugt das im Screenshot gezeigte Beispiel:

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

Die erste Zeile generiert das Dropdownmenü Modus:

Widget zum Anpassen der Ausführung

Ausblenden von Testcode und Ergebnissen

Um Testcode und Ergebnisse auszublenden, wählen Sie im Menü „Zellenaktionen“ die Option Code ausblenden oder Ergebnis ausblenden aus. Fehler werden auch dann angezeigt, wenn Ergebnisse ausgeblendet sind.

Planen der automatischen Ausführung von Tests

Um Tests regelmäßig und automatisch auszuführen, können Sie geplante Notebooks verwenden. Sie können den Auftrag so konfigurieren, dass Benachrichtigungs-E-Mails an eine von Ihnen angegebene E-Mail-Adresse gesendet werden.

Geplanter Notebooktest

Trennen des Testcodes vom Notebook

Sie können Ihren Testcode getrennt von Ihrem Notebook halten, indem Sie entweder %run oder Databricks Git-Ordner verwenden. Wenn Sie %run verwenden, ist der Testcode in einem separaten Notebook enthalten, das Sie aus einem anderen Notebook aufrufen. Wenn Sie Databricks Git-Ordner verwenden, können Sie Testcode in Nicht-Notebook-Quellcodedateien halten.

In diesem Abschnitt werden einige Beispiele gezeigt für die Verwendung von %run und Databricks Git-Ordnern, um den Testcode vom Notebook zu trennen.

Verwenden Sie %run

Der folgende Screenshot zeigt, wie sie %run verwenden, um ein Notebook aus einem anderen Notebook auszuführen. Weitere Informationen zur Verwendung von %run finden Sie unter Verwenden von %run zum Importieren eines Notebooks. Der Code, mit dem die Beispiele generiert wurden, wird nach dem Screenshot gezeigt.

Trennen von Testcode

Hier sehen Sie den Code, der im Beispiel verwendet wird. Bei diesem Code wird davon ausgegangen, dass sich die Notebooks shared-code-notebook und shared-code-notebook-test im gleichen Arbeitsbereichsordner befinden.

shared-code-notebook:

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

shared-code-notebook-test:

In einer Zelle:

%run ./shared-code-notebook

In einer nachfolgenden Zelle:

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'

Verwenden von Databricks Git-Ordnern

Für Code, der in einem Databricks Git-Ordner gespeichert ist, können Sie den Test aufrufen und ihn direkt aus einem Notebook ausführen.

Testen des Aufrufs von einem Notebook

Sie können auch das Webterminal verwenden, um Tests in Quellcodedateien auszuführen, genau wie auf Ihrem lokalen Rechner.

Testen eines Aufrufs von Git-Ordnern

Einrichten eines Workflows im CI/CD-Stil

Für Notebooks in einem Databricks Git-Ordner können Sie einen CI/CD-Workflow einrichten, indem Sie Notebooktests für die Ausführung bei jedem Commit konfigurieren. Weitere Informationen finden Sie unter Databricks: GitHub Actions.