Megosztás a következőn keresztül:


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.

Egységtesztelési hiba

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:

Widget testreszabása végrehajtás

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.

Ütemezett jegyzetfüzet-teszt

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ó.

Tesztkód elkülönítése

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.

Jegyzetfüzet-tesztelési hívás

A webes terminállal ugyanúgy futtathat teszteket forráskódfájlokban, mint a helyi gépen.

Git-mappák tesztelése – hívás

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.