Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Saiba como elaborar testes automatizados em pontos de extremidade privados para o Armazenamento de Blobs do Azure usando o emulador de armazenamento Azurite.
Executar testes no computador local
Instale a versão mais recente do Python
Instale o Gerenciador de Armazenamento do Azure
Instalar e executar o Azurite:
Opção 1: use o NPM para instalar e executar o 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
Opção 2: use o Docker para executar o Azurite
docker run -p 10000:10000 mcr.microsoft.com/azure-storage/azurite azurite-blob --blobHost 0.0.0.0
No Gerenciador de Armazenamento do Azure, selecione Anexar a um emulador local
Forneça um Nome de exibição e um número de Porta de blobs para conectar o Azurite e usar o Gerenciador de Armazenamento do Azure no gerenciamento do armazenamento local de blobs.
Criar um ambiente virtual do Python
python -m venv .venv
Crie um contêiner e inicialize as variáveis de ambiente. Use um arquivo PyTest conftest.py para gerar testes. Veja um exemplo desse arquivo 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)
Observação
O valor mostrado para
AZURE_STORAGE_CONNECTION_STRING
é o valor padrão para o Azurite, não uma chave privada.Instalar dependências listadas em um arquivo requirements.txt
pip install -r requirements.txt
Executar testes:
python -m pytest ./tests
Depois de executar os testes, os arquivos são exibidos no armazenamento de blobs do Azurite usando o Gerenciador de Armazenamento do Azure.
Executar testes no Azure Pipelines
Depois de executar os testes localmente, verifique se eles foram aprovados no Azure Pipelines. Use uma imagem Docker do Azurite como um agente hospedado no Azure ou NPM para instalar o Azurite. O exemplo do Azure Pipelines a seguir usa o NPM para instalar o 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
Depois de executar os testes do Azure Pipelines, será exibida uma saída semelhante a esta: