Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfada, Visual Studio Code için Databricks uzantısını kullanarak Python testlerinin nasıl çalıştırıldığı açıklanır. Bkz . Visual Studio Code için Databricks uzantısı nedir?.
Pytest kullanarak testleri çalıştırma
Pytest'i uzak bir Azure Databricks çalışma alanında bir kümeye bağlantı gerektirmeyen yerel kod üzerinde çalıştırabilirsiniz. Örneğin, PySpark DataFrames'i yerel bellekte kabul eden ve döndüren işlevlerinizi test etmek için kullanabilirsiniz pytest .
pytest ile başlamaya ve yerel olarak çalıştırmaya yönelik adımlar için, belgelerdeki Kullanmaya Başlama bölümüne bakın.
Uzak bir Azure Databricks çalışma alanında kod üzerinde çalıştırmak pytest için Visual Studio Code projenizde aşağıdakileri yapın:
1. Adım: Testleri oluşturma
Çalıştırılacak testlerinizi içeren aşağıdaki koda sahip bir Python dosyası ekleyin. Bu örnekte, bu dosyanın adı spark_test.py ve Visual Studio Code projenizin kökünde olduğu varsayılır. Bu dosya, kümenin (kümedeki pytest Spark işlevselliğine giriş noktası) testlerde kullanılabilmesini sağlayan bir SparkSession içerir. Bu dosya, tablodaki belirtilen hücrenin belirtilen değeri içerip içermediğini denetleen tek bir test içerir. Gerektiğinde bu dosyaya kendi testlerinizi ekleyebilirsiniz.
from pyspark.sql import SparkSession
import pytest
@pytest.fixture
def spark() -> SparkSession:
# Create a SparkSession (the entry point to Spark functionality) on
# the cluster in the remote Databricks workspace. Unit tests do not
# have access to this SparkSession by default.
return SparkSession.builder.getOrCreate()
# Now add your unit tests.
# For example, here is a unit test that must be run on the
# cluster in the remote Databricks workspace.
# This example determines whether the specified cell in the
# specified table contains the specified value. For example,
# the third column in the first row should contain the word "Ideal":
#
# +----+-------+-------+-------+---------+-------+-------+-------+------+-------+------+
# |_c0 | carat | cut | color | clarity | depth | table | price | x | y | z |
# +----+-------+-------+-------+---------+-------+-------+-------+------+-------+------+
# | 1 | 0.23 | Ideal | E | SI2 | 61.5 | 55 | 326 | 3.95 | 3. 98 | 2.43 |
# +----+-------+-------+-------+---------+-------+-------+-------+------+-------+------+
# ...
#
def test_spark(spark):
spark.sql('USE default')
data = spark.sql('SELECT * FROM diamonds')
assert data.collect()[0][2] == 'Ideal'
2. Adım: Pytest çalıştırıcısını oluşturma
Önceki adımda testlerinizi çalıştırmanızı sağlayan aşağıdaki kodu içeren pytest bir Python dosyası ekleyin. Bu örnekte, dosyanın adı pytest_databricks.py ve Visual Studio Code projenizin kökünde olduğu varsayılır.
import pytest
import os
import sys
# Run all tests in the connected directory in the remote Databricks workspace.
# By default, pytest searches through all files with filenames ending with
# "_test.py" for tests. Within each of these files, pytest runs each function
# with a function name beginning with "test_".
# Get the path to the directory for this file in the workspace.
dir_root = os.path.dirname(os.path.realpath(__file__))
# Switch to the root directory.
os.chdir(dir_root)
# Skip writing .pyc files to the bytecode cache on the cluster.
sys.dont_write_bytecode = True
# Now run pytest from the root directory, using the
# arguments that are supplied by your custom run configuration in
# your Visual Studio Code project. In this case, the custom run
# configuration JSON must contain these unique "program" and
# "args" objects:
#
# ...
# {
# ...
# "program": "${workspaceFolder}/path/to/this/file/in/workspace",
# "args": ["/path/to/_test.py-files"]
# }
# ...
#
retcode = pytest.main(sys.argv[1:])
3. Adım: Özel çalıştırma yapılandırması oluşturma
Testlerinizi çalıştırma talimatı pytest vermek için özel bir çalıştırma yapılandırması oluşturmanız gerekir. Kendi özel çalıştırma yapılandırmanızı oluşturmak için aşağıdaki gibi mevcut Databricks küme tabanlı çalıştırma yapılandırmasını kullanın:
Ana menüden >'ye tıklayın.
Komut Paleti'nde Databricks'i seçin.
Visual Studio Code, bu dosya henüz yoksa projenize bir
.vscode/launch.jsondosya ekler.Başlangıç çalıştırması yapılandırmasını aşağıdaki gibi değiştirin ve dosyayı kaydedin:
- Bu çalıştırma yapılandırmasının adını
Run on Databricksetiketinden, bu örnekte bu yapılandırma için benzersiz bir görünen ad olanUnit Tests (on Databricks)etiketiyle değiştirin. -
programöğesini${file}'den bu örnekteki test çalıştırıcısını içeren projedeki${workspaceFolder}/pytest_databricks.pyyoluna değiştirin. - Projede, testlerinizin bulunduğu dosyaları içeren yolu, bu örnekteki
argsolarak,[]'dan["."]'e değiştirin.
Dosyanız
launch.jsonşu şekilde görünmelidir:{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "type": "databricks", "request": "launch", "name": "Unit Tests (on Databricks)", "program": "${workspaceFolder}/pytest_databricks.py", "args": ["."], "env": {} } ] }- Bu çalıştırma yapılandırmasının adını
4. Adım: Testleri çalıştırma
Kümede pytest'in zaten yüklü olduğundan önce emin olun. Örneğin, kümenin ayarlar sayfası Azure Databricks çalışma alanınızda açıkken aşağıdakileri yapın:
-
Kitaplıklar sekmesinde pytest görünür durumdaysa zaten
pytestyüklüdür. Pytest görünmüyorsa Yeni yükle'ye tıklayın. - Kitaplık Kaynağı için PyPI'ye tıklayın.
-
Paket alanına
pytestgirin. - Yükle'ye tıklayın.
- Durum'un Beklemede olandan Yüklü olarak değişmesini bekleyin.
Testleri çalıştırmak için Visual Studio Code projenizden aşağıdakileri yapın:
- Ana menüde Görüntüle > Çalıştır'a tıklayın.
- Çalıştır ve Hata Ayıkla listesinde, henüz seçili değilse (Databricks'te) Birim Testleri'ne tıklayın.
- Yeşil oka (Hata Ayıklamayı Başlat) simgesine tıklayın.
Sonuçlar pytest Hata Ayıklama Konsolu'nda görüntülenir (Ana menüde > Hata Ayıklama Konsolu’nu Görüntüle). Örneğin, bu sonuçlar dosyada spark_test.py en az bir test bulunduğunu gösterir ve nokta (.) tek bir testin bulunduğu ve geçirildiği anlamına gelir. Başarısız bir test bir F gösterir.
<date>, <time> - Creating execution context on cluster <cluster-id> ...
<date>, <time> - Synchronizing code to /Workspace/path/to/directory ...
<date>, <time> - Running /pytest_databricks.py ...
============================= test session starts ==============================
platform linux -- Python <version>, pytest-<version>, pluggy-<version>
rootdir: /Workspace/path/to/directory
collected 1 item
spark_test.py . [100%]
============================== 1 passed in 3.25s ===============================
<date>, <time> - Done (took 10818ms)
Databricks Connect kullanarak testleri çalıştırma
Spark API'lerini kullanan testleri yerel olarak çalıştırmak için Databricks Connect'i kullanın.
1. Adım: Databricks Connect'i yapılandırma
Uzantı için Databricks Connect'i yapılandırma adımlarını izleyin. Bkz . Visual Studio Code için Databricks uzantısı için Databricks Connect kullanarak kodda hata ayıklama.
2. Adım: Birim testi oluşturma
Çalıştırılacak testinizi içeren aşağıdaki koda sahip bir Python dosyası ekleyin. Bu örnekte, bu dosyanın olarak adlandırıldığını main_test.pyvarsayar.
from my_project import main
def test_find_all_taxis():
taxis = main.find_all_taxis()
assert taxis.count() > 5
3. Adım: Debugpy başlatma yapılandırmasını ekleyin veya güncelleyin.
Ardından Databricks Connect'i etkinleştiren bir debugpy başlatma yapılandırması oluşturun.
Visual Studio Code'un ana menüsünde Çalıştır > Yapılandırma ekle'ye tıklayın.
Komut Paleti'ndePython Hata Ayıklayıcısı'nı seçin.
Visual Studio Code, bu dosya henüz yoksa projenize bir
.vscode/launch.jsondosya ekler."databricks": truealanı ekle. Bu, Databricks Connect'i etkinleştirir.
{
"version": "0.2.0",
"configurations": [
{
"name": "Unit Tests (on Databricks)",
"type": "debugpy",
"databricks": true,
"request": "launch",
"program": "${file}",
"args": ["."],
"env": {},
"console": "integratedTerminal"
}
]
}
4. Adım: Testleri çalıştırma
Testleri çalıştırmak için Visual Studio Code projenizden aşağıdakileri yapın:
- Ana menüde Testi Görüntüle'ye > tıklayarak test panelini açın.
- Test panelinde, ile
main_test.pyilişkilendirilmiş hata ayıklama simgesine tıklayarak testinizi çalıştırın. Testin yalnızca çalıştırılmasının değiştirilmiş hata ayıklama yapılandırmasını tetiklemeyeceğini ve kodun Databricks Connect'e erişimi olmadığını unutmayın.