Testowanie notesów usługi Databricks
Na tej stronie krótko opisano niektóre techniki przydatne podczas testowania kodu bezpośrednio w notesach usługi Databricks. Można użyć tych metod oddzielnie lub razem.
Aby zapoznać się ze szczegółowym przewodnikiem konfigurowania i organizowania funkcji i testów jednostkowych w notesach usługi Databricks, zobacz Testowanie jednostkowe notesów.
Wiele bibliotek testów jednostkowych działa bezpośrednio w notesie. Na przykład możesz użyć wbudowanego pakietu języka Python unittest
do testowania kodu notesu.
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'
Błędy testów są wyświetlane w obszarze danych wyjściowych komórki.
Wybieranie trybu notesu za pomocą widżetów usługi Databricks
Widżety umożliwiają odróżnienie wywołań testowych od normalnych wywołań w jednym notesie. Poniższy kod tworzy przykład pokazany na zrzucie ekranu:
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'))
Pierwszy wiersz generuje menu rozwijane Tryb :
Ukryj kod testowy i wyniki
Aby ukryć kod testowy i wyniki, wybierz pozycję Ukryj kod lub Ukryj wynik z menu akcji komórki. Błędy są wyświetlane nawet wtedy, gdy wyniki są ukryte.
Planowanie testów do automatycznego uruchamiania
Aby okresowo i automatycznie uruchamiać testy, możesz użyć zaplanowanych notesów. Zadanie można skonfigurować tak, aby wysyłało wiadomości e-mail z powiadomieniami na określony adres e-mail.
Oddzielanie kodu testowego od notesu
Kod testowy można zachować oddzielnie od notesu przy użyciu %run
folderów Git usługi Databricks. W przypadku korzystania z %run
programu kod testowy jest dołączany do oddzielnego notesu wywoływanego z innego notesu. W przypadku korzystania z folderów Git usługi Databricks można zachować kod testowy w plikach kodu źródłowego spoza notesu.
W tej sekcji przedstawiono kilka przykładów użycia %run
folderów Git i Databricks w celu oddzielenia kodu testowego od notesu.
Korzystanie z polecenia %run
Poniższy zrzut ekranu przedstawia sposób uruchamiania %run
notesu z innego notesu. Aby uzyskać więcej informacji na temat korzystania z programu %run
, zobacz Używanie narzędzia %run do importowania notesu. Kod używany do generowania przykładów jest wyświetlany na zrzucie ekranu.
Oto kod używany w przykładzie. W tym kodzie przyjęto założenie, że notesy shared-code-notebook i shared-code-notebook-test znajdują się w tym samym folderze obszaru roboczego.
shared-code-notebook:
def reverse(s):
return s[::-1]
shared-code-notebook-test:
W jednej komórce:
%run ./shared-code-notebook
W kolejnej komórce:
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'
Korzystanie z folderów Git usługi Databricks
W przypadku kodu przechowywanego w folderze Git usługi Databricks można wywołać test i uruchomić go bezpośrednio z notesu.
Za pomocą terminalu internetowego można również uruchamiać testy w plikach kodu źródłowego tak samo jak na komputerze lokalnym.
Konfigurowanie przepływu pracy w stylu ciągłej integracji/ciągłego wdrażania
W przypadku notesów w folderze Git usługi Databricks można skonfigurować przepływ pracy w stylu ciągłej integracji/ciągłego wdrażania, konfigurując testy notesu do uruchamiania dla każdego zatwierdzenia. Zobacz Databricks GitHub Actions.