Aracılığıyla paylaş


Databricks not defterlerini test edin

Bu sayfada kodu doğrudan Databricks not defterlerinde test ederken yararlı olan bazı teknikler kısaca açıklanmaktadır. Bu yöntemleri ayrı ayrı veya birlikte kullanabilirsiniz.

Databricks not defterlerinde işlevleri ve birim testlerini ayarlama ve düzenleme hakkında ayrıntılı yönergeler için bkz . 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 yürütmesi

Test kodunu ve sonuçlarını gizleme

Test kodunu ve sonuçlarını gizlemek için hücre eylemleri menüsünde Kodu Gizle veya Sonucu Gizle'yi 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

Aşağıdaki ekran görüntüsünde, başka bir not defterinden not defterini çalıştırmak için nasıl kullanılacağı %run gösterilmektedir. kullanma %runhakkında daha fazla bilgi için bkz . Not defterini içeri aktarmak için %run kullanma. Örnekleri oluşturmak için kullanılan kod ekran görüntüsünden sonra gösterilir.

Test kodunu ayırma

Örnekte kullanılan kod aşağıda verilmiştir. Bu kod, shared-code-notebook ve shared-code-notebook-test not 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.

Not defteri testi çağırma

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

Çağrıyı test eden Git klasörleri

CI/CD stili iş akışı ayarlama

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