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