Databricks-jegyzetfüzetek tesztelése
Ez az oldal röviden ismerteti azokat a technikákat, amelyek hasznosak a kód közvetlenül a Databricks-jegyzetfüzetekben való tesztelése során. Ezeket a metódusokat külön-külön vagy együtt is használhatja.
A függvények és egységtesztek Databricks-jegyzetfüzetekben való beállításáról és rendszerezéséről részletes útmutatót a jegyzetfüzetek egységtesztelése című témakörben talál.
Számos egységtesztelési kódtár közvetlenül a jegyzetfüzeten belül működik. A beépített Python-csomag unittest
használatával például tesztelheti a jegyzetfüzet kódját.
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'
A tesztelési hibák a cella kimeneti területén jelennek meg.
Jegyzetfüzet mód kiválasztása a Databricks-vezérlőkkel
A widgetekkel megkülönböztetheti a teszthívásokat a normál hívásoktól egyetlen jegyzetfüzetben. Az alábbi kód a képernyőképen látható példát hozza létre:
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'))
Az első sor létrehozza a Mode legördülő menüt:
Tesztkód és eredmények elrejtése
A tesztkód és az eredmények elrejtéséhez válassza a Kód elrejtése vagy Az eredmény elrejtése a cellaműveletek menüből lehetőséget. A hibák akkor is megjelennek, ha az eredmények rejtettek.
Tesztek automatikus futtatásának ütemezése
A tesztek rendszeres és automatikus futtatásához ütemezett jegyzetfüzeteket használhat. A feladat konfigurálható úgy, hogy értesítési e-maileket küldjön egy megadott e-mail-címre.
Tesztkód elkülönítése a jegyzetfüzettől
A tesztkódot elkülönítheti a jegyzetfüzettől a %run
Databricks Git-mappák használatával. Ha használja %run
, a tesztkódot egy másik jegyzetfüzetből hívott külön jegyzetfüzet tartalmazza. A Databricks Git-mappák használatakor a tesztkódot nem jegyzetfüzetbeli forráskódfájlokban tárolhatja.
Ez a szakasz néhány példát mutat be arra, hogy a databricks Git-mappákat használva %run
elkülönítheti a tesztkódot a jegyzetfüzettől.
Használja a következő parancsot: %run
Az alábbi képernyőkép bemutatja, %run
hogyan futtathat jegyzetfüzetet egy másik jegyzetfüzetből. További információ a jegyzetfüzetek használatáról %run
: %run használata jegyzetfüzet importálásához. A példák létrehozásához használt kód a képernyőképen látható.
Itt látható a példában használt kód. Ez a kód feltételezi, hogy a megosztott kóddal és a megosztott kóddal végzett jegyzetfüzet-teszt jegyzetfüzetek ugyanabban a munkaterületi mappában vannak.
megosztott kódfüzet:
def reverse(s):
return s[::-1]
shared-code-notebook-test:
Egy cellában:
%run ./shared-code-notebook
Egy későbbi cellában:
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'
Databricks Git-mappák használata
A Databricks Git-mappában tárolt kód esetén meghívhatja a tesztet, és közvetlenül egy jegyzetfüzetből futtathatja.
A webes terminállal ugyanúgy futtathat teszteket forráskódfájlokban, mint a helyi gépen.
CI-/CD-stílusú munkafolyamat beállítása
A Databricks Git-mappában lévő jegyzetfüzetek esetében ci-/CD-stílusú munkafolyamatot állíthat be úgy, hogy konfigurálja a jegyzetfüzetteszteket az egyes véglegesítések futtatásához. Lásd: Databricks GitHub Actions.