Exécuter des tests automatisés en utilisant Azurite
Découvrez comment écrire des tests automatisés par rapport aux points de terminaison privés pour Stockage Blob Azure en utilisant l’émulateur de stockage Azurite.
Exécuter des tests sur votre ordinateur local
Installez la version la plus récente de Python.
Installez Explorateur Stockage Azure.
Installez et exécutez Azurite :
Option 1 : Utilisez npm pour installer, puis exécuter Azurite localement.
# Install Azurite npm install -g azurite # Create an Azurite directory mkdir c:\azurite # Launch Azurite locally azurite --silent --location c:\azurite --debug c:\azurite\debug.log
Option 2 : Utilisez Docker pour exécuter Azurite.
docker run -p 10000:10000 mcr.microsoft.com/azure-storage/azurite azurite-blob --blobHost 0.0.0.0
Dans Explorateur Stockage Azure, sélectionnez Lier à un émulateur local.
Indiquez un nom d’affichage et un numéro de port Blobs pour connecter Azurite et utiliser Explorateur Stockage Azure pour gérer le stockage blob local.
Créer un environnement Python virtuel
python -m venv .venv
Créez un conteneur et initialisez les variables d’environnement. Utilisez un fichier PyTestconftest.py pour générer des tests. Voici un exemple de fichier conftest.py :
from azure.storage.blob import BlobServiceClient import os def pytest_generate_tests(metafunc): os.environ['AZURE_STORAGE_CONNECTION_STRING'] = 'DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;' os.environ['STORAGE_CONTAINER'] = 'test-container' # Create a container for Azurite for the first run blob_service_client = BlobServiceClient.from_connection_string(os.environ.get("AZURE_STORAGE_CONNECTION_STRING")) try: blob_service_client.create_container(os.environ.get("STORAGE_CONTAINER")) except Exception as e: print(e)
Notes
La valeur indiquée pour
AZURE_STORAGE_CONNECTION_STRING
est la valeur par défaut pour Azurite, il ne s’agit pas d’une clé privée.Installez les dépendances figurant dans un fichier requirements.txt.
pip install -r requirements.txt
Exécutez les tests :
python -m pytest ./tests
Après avoir exécuté les tests, vous pouvez voir les fichiers dans le stockage blob Azurite en utilisant Explorateur Stockage Azure.
Exécuter des tests sur Azure Pipelines
Après avoir exécuté les tests localement, assurez-vous que les tests passent sur Azure Pipelines. Utilisez une image Docker Azurite comme agent hébergé sur Azure, ou utilisez npm pour installer Azurite. L’exemple d’Azure Pipelines suivant utilise npm pour installer Azurite.
trigger:
- master
steps:
- task: UsePythonVersion@0
displayName: 'Use Python 3.7'
inputs:
versionSpec: 3.7
- bash: |
pip install -r requirements_tests.txt
displayName: 'Setup requirements for tests'
- bash: |
sudo npm install -g azurite
sudo mkdir azurite
sudo azurite --silent --location azurite --debug azurite\debug.log &
displayName: 'Install and Run Azurite'
- bash: |
python -m pytest --junit-xml=unit_tests_report.xml --cov=tests --cov-report=html --cov-report=xml ./tests
displayName: 'Run Tests'
- task: PublishCodeCoverageResults@1
inputs:
codeCoverageTool: Cobertura
summaryFileLocation: '$(System.DefaultWorkingDirectory)/**/coverage.xml'
reportDirectory: '$(System.DefaultWorkingDirectory)/**/htmlcov'
- task: PublishTestResults@2
inputs:
testResultsFormat: 'JUnit'
testResultsFiles: '**/*_tests_report.xml'
failTaskOnFailedTests: true
Après l’exécution des tests sur Azure Pipelines, une sortie semblable à celle-ci doit s’afficher :