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