python-3.x - 运行 Azure DevOps 管道存在 ##[error]Bash exited with code '1'
问题描述
介绍:
我创建了一个简单的添加函数,以更深入地了解 Azure Dev Ops 的工作原理。当我故意让 test_method2() 失败时,管道存在,##[error]Bash 以代码“1”退出。因此,在 Azure Dev Ops 中,缺少测试概述(哪些很好,哪些不好)和代码覆盖率。我希望在测试失败的情况下仍然提供概述测试和代码覆盖率。总而言之,测试失败很好,但应该报告并且不应该停止该过程。
请注意,当我修复测试时,即 'def test_method2(): assert add(15,5) == 20 ' 管道按预期工作。
我的问题是需要什么来确保在测试失败的情况下仍然提供测试和代码覆盖率的概述?
calc_lean.py:
def add(x, y):
"""Add Function"""
return x + y
test_calc_lean.py:
import pytest
from calc_lean import add
def test_method1():
assert add(3,5) == 8
def test_method2():
assert add(15,5) == 21
天蓝色管道.yml:
trigger:
- master
pool:
vmImage: 'ubuntu-latest'
strategy:
matrix:
Python37:
python.version: '3.7'
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
pip install pytest-cov
pytest --doctest-modules --junitxml=junit/test-results.xml --cov=. --cov-report=xml
displayName: pytest
- task: PublishTestResults@2
displayName: 'Publish Test Results **/test-results.xml'
inputs:
testResultsFiles: '**/test-results.xml'
testRunTitle: 'Python $(python.version)'
- task: PublishCodeCoverageResults@1
displayName: 'Code Coverage'
inputs:
codeCoverageTool: Cobertura
summaryFileLocation: '$(System.DefaultWorkingDirectory)/**/coverage.xml'
解决方案
解决方案:问题已经在其他帖子中讨论过了。Azure DevOps 中的“bash exited with code 1”中的 Cypress 测试退出失败
添加'|| 真的'解决了它。那是,
pytest --doctest-modules --junitxml=junit/test-results.xml --cov=. --cov-report=xml || true
抑制错误
推荐阅读
- c# - 读取Excel文件时出现C#错误,这是一个奇怪的错误
- python-3.x - Google Cloud Functions 未返回响应
- javascript - $.post 的问题
- python - 如何从 Python Flask 中的 HTML 选择中获取项目
- php - PHPunit:如何从外部函数更改 Mock 对象的属性
- angular - 当所选语言之一的翻译不可用时如何禁用按钮
- c - 将输入的整数排序为奇数和偶数数组
- c# - 在以下情况下,手动 foreach 循环是否更快或对集合进行 linq 查询?
- unity3d - Unity3D 看不到哈萨克语字母
- python - 需要使用 pandas.str() 使用字符串列表从列中选择值