Test Databricks notebooks | Databricks on AWS [2022/11/30時点]の翻訳です。
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
本書では、Databricksノートブックにおけるいくつかのコードテストの方法をカバーします。これらの方法を別々あるいは組み合わせて使用することができます。Unit testing for notebooksもご覧ください。
多くのユニットテストのライブラリはノートブック内で直接動作します。例えば、ノートブックのコードをテストするためにビルトインの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のレポに格納されているコードに対しては、ローカルマシンで行うのと同じようにソースコードファイルでテストを実行するためにウェブターミナルを使用することができます。
Databricksのレポに格納されているノートブックに対しては、コミットごとにノートブックのテストを設定することで、CI/CDスタイルのワークフローをセットアップすることができます。Databricks GitHub Actionsをご覧ください。