Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Obtenga información sobre cómo escribir pruebas automatizadas en puntos de conexión privados para Azure Blob Storage mediante el emulador de almacenamiento de Azurite.
Ejecución de pruebas en el equipo local
Instale la última versión de Python.
Instale el Explorador de Azure Storage.
Instale y ejecute Azurite:
Opción 1: Utilice npm para instalar y luego ejecutar Azurite localmente.
# 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
Opción 2: Use Docker para ejecutar Azurite.
docker run -p 10000:10000 mcr.microsoft.com/azure-storage/azurite azurite-blob --blobHost 0.0.0.0
En el Explorador de Azure Storage, seleccione Vincular un emulador local.
Proporcione un nombre para mostrar y un número de puerto de blobs para conectar Azurite y utilizar el Explorador de Azure Storage para administrar el almacenamiento local de blobs.
Creación de un entorno de Python virtual
python -m venv .venv
Cree un contenedor e inicialice las variables de entorno. Utilice un archivo PyTest conftest.py para generar pruebas. Este es un ejemplo de un archivo 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)
Nota:
El valor mostrado para
AZURE_STORAGE_CONNECTION_STRING
es el valor predeterminado de Azurite, no es una clave privada.Instale las dependencias enumeradas en un archivo requirements.txt.
pip install -r requirements.txt
Ejecute las pruebas:
python -m pytest ./tests
Después de ejecutar las pruebas, puede ver los archivos en Azurite Blob Storage mediante el Explorador de Azure Storage.
Ejecución de pruebas en Azure Pipelines
Después de ejecutar las pruebas localmente, asegúrese de que se superan en Azure Pipelines. Use una imagen de Azurite de Docker como agente hospedado en Azure, o use npm para instalar Azurite. En el siguiente ejemplo de Azure Pipelines se usa npm para instalar 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
Después de ejecutar las pruebas de Azure Pipelines, debería ver una salida similar a la siguiente: