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 ウィジェットを使用してノートブック モードを選択する
ウィジェットを使用して、1 つのノートブック内のテスト呼び出しと通常の呼び出しを区別できます。 次のコードは、スクリーンショットに示されている例を生成します。
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'))
最初の行では、[Mode] (モード) ドロップダウン メニューが生成されます。
テスト コードと結果を非表示にする
テスト コードと結果を非表示にするには、セルのアクションメニューから [コードの非表示] または[結果の非表示]を選択します。 結果が非表示の場合でも、エラーが表示されます。
テストを自動的に実行するようにスケジュールする
定期的かつ自動的にテストを実行するには、スケジュールされたノートブックを使用できます。 指定したメールアドレスに通知メールアドレスを送信するようにジョブを構成できます。
ノートブックからテスト コードを分離する
%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:
1 つのセル内:
%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 フォルダーに格納されているコードの場合は、テストを呼び出してノートブックから直接実行できます。
ローカル マシンの場合と同様に、Web ターミナルを使用してソース コード ファイルでテストを実行できます。
CI/CD スタイルのワークフローを設定する
Databricks Git フォルダー内のノートブックの場合は、コミットごとに実行するノートブック テストを構成することで、CI/CD スタイルのワークフローを設定できます。 Databricks の GitHub Actions に関する記事を参照してください。