python-3.x - 如何使用服务原则作为默认身份验证机制在 Azure DevOps CI 管道中运行 pytest(单元测试)
问题描述
我想在 CI 管道 azure devops 期间测试以下代码片段,它在环境变量的帮助下在我的本地机器上运行良好
import os
from azure.identity import DefaultAzureCredential
from azure.keyvault.secrets import SecretClient
def get_secret():
# Acquire the resource URL
vault_url = os.environ["KEY_VAULT_URL"]
# Acquire a credential object
credential = DefaultAzureCredential()
# Acquire a client object
secret_client = SecretClient(vault_url=vault_url, credential=credential)
# Attempt to perform an operation
retrieved_secret = secret_client.get_secret("secret-name-01")
# Return secret value
return retrieved_secret
在我的 test_file.py
def test_secret():
assert get_secret() == 'myvalue'
我在 Azure DevOps 上的 CI 管道看起来像
trigger:
- master
pool:
vmImage: ubuntu-latest
strategy:
matrix:
Python37:
python.version: '3.7'
Python38:
python.version: '3.8'
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '$(python.version)'
displayName: 'Use Python $(python.version)'
- script: |
python -m pip install --upgrade pip
pip install -r requirements.txt
displayName: 'Install dependencies'
- script: |
pip install pytest pytest-azurepipelines
displayName: 'install test Apis'
- task: AzureCLI@1
displayName: 'Running Unit Tests'
inputs:
azureSubscription: 'My Service Principle'
scriptLocation: 'inlineScript'
inlineScript: 'pytest /test/'
花了很长时间后,它被中止并出现以下错误
src/test/test_app.py ./home/vsts/work/_temp/azureclitaskscript1616080518256.sh:第 1 行:1846 中止(核心转储)pytest src/test/
##[error]Script failed with error: Error: The process '/usr/bin/bash' failed with exit code 134
为了修复它,我需要进行哪些更改?提前致谢
解决方案
推荐阅读
- javascript - 在 Javascript JSON 中将对象插入单个对象
- keycloak - 从 keycloak 中删除特定用户
- vb.net - vb.net 中的 REST 调用:如何在 cURL 中传递数据
- c# - C# Renci SshNet 服务器响应在位置 0x0000002A 处包含一个空字符
- excel - 使用 VBA 将“格林威治标准时间 2020 年 12 月 2 日星期三 24:00:00”转换为 2020 年 2 月 12 日
- c# - 带函数参数的接口的最小起订量设置
- html - 如何在不使用 :after 的情况下在 flexbox 中创建完美的 CSS 正方形
- git - git 有没有办法将提交的更改转储到工作树?
- python-jedi - Jupyter Lab 或 Jupyter Notebook 自动完成功能不起作用
- mysql - 如何将 MySQL 数据库从 AMPPS 转移到 XAMPP vm Stack