測試 Databricks 筆記本
本頁簡要說明一些在 Databricks 記事本中直接測試程式碼時有用的技巧。 這些功能可以單獨使用,也可以一起使用。
如需如何在 Databricks 筆記本中 set 及組織函式和單元測試的詳細逐步解說,請參閱 筆記本單元測試。
許多單元測試程式庫直接在筆記本內運作。 例如,您可以使用內建的 Python unittest
套件來測試筆記本程式碼。
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'
測試失敗會出現在儲存格的輸出區域。
使用 Databricks 小工具進入 select 筆記本模式
可以使用小工具在單一筆記本中區分測試調用與正常調用。 下列程式碼會產生螢幕擷取畫面中顯示的範例:
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'))
第一行產生 [模式] 下拉式功能表:
隱藏測試程式碼和結果
若要隱藏測試程式代碼和結果,請從 select選擇 隱藏程式代碼 或 隱藏結果。 即使隱藏結果,錯誤也會顯示。
排程測試以自動執行
若要測試定期自動執行,可以使用排程的筆記本。 可以設定工作,將通知電子郵件傳送至指定的電子郵件地址。
分隔測試程式碼與筆記本
可以使用 %run
或 Databricks Git 資料夾來分隔測試程式碼與筆記本。 當您使用 %run
時,測試程式碼包含在一個單獨的筆記本中,您可以從另一個筆記本呼叫。 當您使用 Databricks Git 資料夾時,可以將測試程式碼保留在非筆記本原始程式碼檔案中。
本節說明使用 %run
和 Databricks Git 資料夾分隔測試程式碼與筆記本的一些範例。
使用 %run
下列螢幕擷取畫面顯示如何使用 %run
從另一個筆記本執行筆記本。 如需如何使用 %run
的詳細資訊,請參閱使用 %run 匯入筆記本。 用來 generate 範例的程式代碼顯示在螢幕截圖之後。
以下是範例中使用的程式碼: 此程式碼假設筆記本 shared-code-notebook 和 shared-code-notebook-test 位於相同的工作區資料夾。
shared-code-notebook:
def reverse(s):
return s[::-1]
shared-code-notebook-test:
在一個儲存格中:
%run ./shared-code-notebook
在後續儲存格中:
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 資料夾
對於儲存在 Databricks Git 資料夾中的程式碼,您可以呼叫測試,並直接從筆記本執行。
也可以使用網路終端機在原始程式碼檔案中執行測試,就像在本機電腦上一樣。
Set 建立 CI/CD 風格工作流程
針對 Databricks Git 資料夾中的筆記本,您可以藉由設定筆記本測試來針對每個認可執行,來 set CI/CD 樣式工作流程。 請參閱 Databricks GitHub Actions。