Databricks not defterlerini test edin

unittest gibi yerleşik kitaplıkları, test ve normal çalıştırmalar arasında geçiş yapmaya yarayan pencere öğelerini ve zamanlanmış işleri kullanarak kodu doğrudan Databricks not defterlerinde test edebilirsiniz. Bu teknikleri ayrı ayrı veya birlikte kullanın.

Databricks not defterlerinde işlevleri ve birim testlerini ayarlama ve düzenleme hakkında ayrıntılı bir kılavuz için bkz. Databricks not defterleri için birim testi.

Birçok birim testi kitaplığı doğrudan not defteri içinde çalışır. Örneğin, not defteri kodunu test etmek için yerleşik Python unittest paketini kullanabilirsiniz.

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'

Test hataları hücrenin çıkış alanında görünür.

Birim testi hatası

Not defteri modunu seçmek için Databricks pencere öğelerini kullanma

Test çağrılarını tek bir not defterindeki normal çağrılardan ayırmak için pencere öğelerini kullanabilirsiniz. Aşağıdaki kod, ekran görüntüsünde gösterilen örneği oluşturur:

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

İlk satır Mod açılan menüsünü oluşturur:

Pencere öğesi özelleştirme işlemi

Test kodunu ve sonuçlarını gizleme

Test kodunu ve sonuçlarını gizlemek için Kodu Gizle veyahücre eylemleri menüsünden Sonucu Gizle seçin. Sonuçlar gizlense bile hatalar görüntülenir.

Testleri otomatik olarak çalışacak şekilde zamanlama

Testleri düzenli aralıklarla ve otomatik olarak çalıştırmak için zamanlanmış not defterlerini kullanabilirsiniz. İşi, belirttiğiniz bir e-posta adresine bildirim e-postaları gönderecek şekilde yapılandırabilirsiniz.

Zamanlanmış not defteri testi

Test kodunu not defterinden ayırma

Veya Databricks Git klasörlerini kullanarak %run test kodunuzu not defterinizden ayrı tutabilirsiniz. kullandığınızda %run, test kodu başka bir not defterinden çağırdığınız ayrı bir not defterine eklenir. Databricks Git klasörlerini kullandığınızda, test kodunu not defteri olmayan kaynak kodu dosyalarında tutabilirsiniz.

Bu bölümde test kodunuzu not defterinden ayırmak için ve Databricks Git klasörlerini kullanma %run örnekleri gösterilmektedir.

%run komutunu kullanma

Ekran görüntüsü aşağıda başka bir not defterinden bir not defterini çalıştırmak için %run'ın nasıl kullanılacağını göstermektedir. %run kullanma hakkında daha fazla bilgi için bkz. %run kullanarak bir not defterini içeri aktarma. Örnekleri oluşturmak için kullanılan kod ekran görüntüsünden sonra gösterilir.

İlk test kodu

Test kodunu ayırma

Örnekte kullanılan kod aşağıda verilmiştir. Bu kod, shared-code-notebook ve shared-code-notebook-test defterlerinin aynı çalışma alanı klasöründe olduğunu varsayar.

shared-code-notebook:

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

shared-code-notebook-test:

Bir hücrede:

%run ./shared-code-notebook

Sonraki hücrede:

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 klasörlerini kullanma

Databricks Git klasöründe depolanan kod için testi çağırabilir ve doğrudan bir not defterinden çalıştırabilirsiniz.

Dijital not defteri testi başlatma

Ayrıca, yerel makinenizde yaptığınız gibi kaynak kod dosyalarında testleri çalıştırmak için web terminalini de kullanabilirsiniz.

Git klasörleri test etme çağrısı

CI/CD stili iş akışı ayarlama

bir Databricks Git klasöründeki not defterleri için, not defteri testlerini her işleme için çalışacak şekilde yapılandırarak CI/CD stili bir iş akışı ayarlayabilirsiniz. Bkz. Databricks GitHub Actions.