Тестирование записных книжек 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 можно настроить рабочий процесс в стиле CI/CD, настроив тесты записных книжек для выполнения каждой фиксации. См. страницу GitHub Actions для Databricks.