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 ドロップダウン メニューを生成します。
テストコードと結果を非表示にする
テスト コードと結果を非表示にするには、 セル アクション メニューから[コードを非表示]または[結果を非表示] を選択します。結果が非表示になっている場合でも、エラーが表示されます。
テストを自動的に実行するようにスケジュールする
テストを定期的かつ自動的に実行するには、 スケジュールされたノートブックを使用できます。 指定した Eメール アドレスに 通知 Eメール を送信するようにジョブを設定できます。
ノートブックからテストコードを分離する
テスト コードは、 %run
または Databricks Git フォルダーを使用して、ノートブックから分離できます。 %run
を使用すると、テスト・コードは、別のノートブックから呼び出す別のノートブックに含まれます。Databricks Git フォルダーを使用すると、 ノートブック以外のソース コード ファイルにテスト コードを保持できます。
このセクションでは、 %run
と Databricks の Git フォルダーを使用して、テスト コードをノートブックから分離する例をいくつか示します。
使う %run
次のスクリーンショットは、 %run
を使用して別のノートブックからノートブックを実行する方法を示しています。 %run
の使用の詳細については、「%run
を使用してノートブックをインポートする」を参照してください。例の生成に使用されたコードは、スクリーンショットの後に示されています。
この例で使用されているコードを次に示します。 このコードは、ノートブック shared-code-ノートブック と shared-code-ノートブック-test が同じワークスペース フォルダーにあることを前提としています。
共有コードノートブック :
def reverse(s):
return s[::-1]
shared-code-ノートブック-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フォルダ内のノートブックの場合、ノートブック tests をコミットごとに実行するように構成することで、CI/CDスタイルのワークフローを設定できます。Databricks GitHub Actionsを参照してください。