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.
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:
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.
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 %run
hakkı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.
Ö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.
Ayrıca, yerel makinenizde yaptığınız gibi kaynak kod dosyalarında testleri çalıştırmak için web terminalini de kullanabilirsiniz.
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.