Sdílet prostřednictvím


Testování poznámkových bloků Databricks

Tato stránka stručně popisuje některé techniky, které jsou užitečné při testování kódu přímo v poznámkových blocích Databricks. Tyto metody můžete použít samostatně nebo společně.

Podrobný návod, jak nastavit a uspořádat funkce a testy jednotek v poznámkových blocích Databricks, najdete v tématu Testování jednotek pro poznámkové bloky.

Mnoho knihoven testování jednotek funguje přímo v poznámkovém bloku. Můžete například použít integrovaný balíček Pythonu unittest k otestování kódu poznámkového bloku.

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'

Selhání testů se zobrazí ve výstupní oblasti buňky.

Selhání testu jednotek

Výběr režimu poznámkového bloku pomocí widgetů Databricks

Pomocí widgetů můžete rozlišit volání testů od normálních vyvolání v jednom poznámkovém bloku. Následující kód vytvoří příklad zobrazený na snímku obrazovky:

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

První řádek vygeneruje rozevírací nabídku Režim :

Přizpůsobení provádění widgetu

Skrytí testovacího kódu a výsledků

Pokud chcete skrýt testovací kód a výsledky, v nabídce akcí buňky vyberte Skrýt kód nebo Skrýt výsledek. Chyby se zobrazují i v případě, že jsou výsledky skryté.

Naplánování automatického spuštění testů

Pokud chcete testy spouštět pravidelně a automaticky, můžete použít naplánované poznámkové bloky. Úlohu můžete nakonfigurovat tak, aby odesílala e-maily s oznámeními na zadaná e-mailová adresa.

Naplánovaný test poznámkového bloku

Oddělení testovacího kódu z poznámkového bloku

Testovací kód můžete zachovat odděleně od poznámkového bloku pomocí %run složek Gitu nebo Databricks. Při použití %runje testovací kód součástí samostatného poznámkového bloku, který voláte z jiného poznámkového bloku. Když používáte složky Git Databricks, můžete nechat testovat kód v souborech zdrojového kódu poznámkového bloku.

Tato část ukazuje několik příkladů použití %run složek Git a Databricks git k oddělení testovacího kódu od poznámkového bloku.

Použití %run

Následující snímek obrazovky ukazuje, jak použít %run ke spuštění poznámkového bloku z jiného poznámkového bloku. Další informace o použití %runnaleznete v tématu %run k importu poznámkového bloku. Kód použitý k vygenerování příkladů je zobrazený na snímku obrazovky.

Oddělení testovacího kódu

Tady je kód použitý v příkladu. Tento kód předpokládá, že poznámkové bloky shared-code-notebook a shared-code-notebook-test jsou ve stejné složce pracovního prostoru.

shared-code-notebook:

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

shared-code-notebook-test:

V jedné buňce:

%run ./shared-code-notebook

V následující buňce:

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'

Použití složek Git Databricks

Kód uložený ve složce Git Databricks můžete volat a spustit ho přímo z poznámkového bloku.

Vyvolání poznámkového bloku

Pomocí webového terminálu můžete také spouštět testy v souborech zdrojového kódu stejně jako na místním počítači.

Testování vyvolání složek Gitu

Nastavení pracovního postupu ve stylu CI/CD

Pro poznámkové bloky ve složce Databricks Git můžete nastavit pracovní postup ve stylu CI/CD tak, že nakonfigurujete testy poznámkových bloků tak, aby se spouštěly pro každé potvrzení. Viz Databricks GitHub Actions.