Menguji notebook Databricks

Halaman ini secara singkat menjelaskan beberapa teknik yang berguna saat menguji kode langsung di notebook Databricks. Anda dapat menggunakan metode ini secara terpisah atau bersama-sama.

Untuk panduan terperinci tentang cara menyiapkan dan mengatur fungsi dan pengujian unit di notebook Databricks, lihat bagian pengujian unit untuk notebook .

Banyak pustaka pengujian unit berfungsi langsung di notebook. Misalnya, Anda dapat menggunakan paket Python unittest bawaan untuk menguji kode notebook.

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'

Kegagalan pengujian muncul di area output sel.

Kegagalan pengujian unit

Menggunakan widget Databricks untuk memilih mode notebook

Anda dapat menggunakan widget untuk membedakan pemanggilan pengujian dari pemanggilan normal dalam satu notebook. Kode berikut menghasilkan contoh yang ditunjukkan dalam cuplikan layar:

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'))

Baris pertama menghasilkan menu drop-down Mode :

Eksekusi kustomisasi widget

Sembunyikan kode dan hasil pengujian

Untuk menyembunyikan kode dan hasil pengujian, pilih Sembunyikan kode atau Sembunyikan Hasil dari menu tindakan sel . Kesalahan ditampilkan meskipun hasilnya disembunyikan.

Menjadwalkan pengujian untuk dijalankan secara otomatis

Untuk menjalankan pengujian secara berkala dan otomatis, Anda dapat menggunakan notebook terjadwal. Anda dapat mengonfigurasi pekerjaan untuk mengirim email pemberitahuan ke alamat email yang Anda tentukan.

Pengujian notebook terjadwal

Memisahkan kode pengujian dari notebook

Anda dapat memisahkan kode pengujian dari buku catatan Anda menggunakan %run folder Atau Databricks Git. Saat Anda menggunakan %run, kode pengujian disertakan dalam buku catatan terpisah yang Anda panggil dari buku catatan lain. Saat Anda menggunakan folder Databricks Git, Anda dapat menyimpan kode pengujian dalam file kode sumber non-notebook.

Bagian ini memperlihatkan beberapa contoh penggunaan %run dan folder Databricks Git untuk memisahkan kode pengujian Anda dari buku catatan.

Gunakan %run

Cuplikan layar di bawah ini memperlihatkan cara menggunakan %run untuk menjalankan buku catatan dari buku catatan lain. Untuk informasi selengkapnya tentang menggunakan %run, lihat Menggunakan %run untuk mengimpor buku catatan. Kode yang digunakan untuk menghasilkan contoh diperlihatkan mengikuti cuplikan layar.

Kode pengujian awal

Memisahkan kode pengujian

Berikut adalah kode yang digunakan dalam contoh. Kode ini mengasumsikan bahwa notebook shared-code-notebook dan shared-code-notebook-test berada di folder ruang kerja yang sama.

shared-code-notebook:

def reverse(s):
  return s[::-1]

shared-code-notebook-test:

Dalam satu sel:

%run ./shared-code-notebook

Dalam sel berikutnya:

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'

Penggunaan folder Git di Databricks

Untuk kode yang disimpan dalam folder Databricks Git, Anda dapat memanggil pengujian dan menjalankannya langsung dari notebook.

Pemanggilan pengujian notebook

Anda juga dapat menggunakan terminal web untuk menjalankan pengujian dalam file kode sumber seperti yang Anda lakukan di komputer lokal Anda.

Pemanggilan pengujian folder Git

Menyiapkan alur kerja gaya CI/CD

Untuk notebook di folder Databricks Git, Anda dapat menyiapkan gaya alur kerja CI/CD dengan mengonfigurasi pengujian notebook yang dijalankan pada setiap commit. Lihat Databricks GitHub Actions.