Microsoft azure devops python 管道失败,Bash 以代码“5”退出
Posted
技术标签:
【中文标题】Microsoft azure devops python 管道失败,Bash 以代码“5”退出【英文标题】:Microsoft azure devops python pipeline fails with Bash exited with code '5' 【发布时间】:2020-04-28 06:11:52 【问题描述】:我正在关注https://docs.microsoft.com/en-us/azure/devops/pipelines/ecosystems/python?view=azure-devops 的教程。
这是我的 azure-pipelines.yml 文件:
# Python package
# Create and test a Python package on multiple Python versions.
# Add steps that analyze code, save the dist with the build record, publish to a PyPI-compatible index, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/python
trigger:
- master
pool:
vmImage: 'ubuntu-latest'
strategy:
matrix:
Python27:
python.version: '2.7'
Python35:
python.version: '3.5'
Python36:
python.version: '3.6'
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 pytest-azurepipelines
pytest
displayName: 'pytest'
运行管道失败并显示以下错误消息。
Bash 以代码“5”退出。
我启用了系统诊断以将调试消息添加到日志中。
错误发生在管道的pytest阶段。
完整日志可在https://github.com/michaelhochleitner/debug-azure-devops-python-pipeline/blob/master/log.txt 获得。
我怎样才能使管道运行而不失败?
【问题讨论】:
pytest
报告收集了 0 个项目。
【参考方案1】:
我怎样才能使管道运行而不失败?
同意phd,问题出在0测试项目可以收集。
检查来自 cewing 的 this detailed answer:
Pytest 根据命名约定收集测试。默认情况下,任何包含测试的文件都必须以 test_ 开头,并且文件中应被视为测试的任何函数也必须以 test_ 开头。
所以很明显pytest命令找不到任何名称以test_
开头的xx.py
文件。所以对于 pytest,没有可用的测试,这会导致 0 items collected
=>Bash exited with code '5'
。
我检查了你上面的教程并重现了同样的问题:
解决它并使运行成功:
对我来说,我只是创建了一个新的test_anyname.py
文件,其内容如下(test_xx.py
+test_xx method
):
然后我的管道在没有Bash exited with code '5'
的情况下成功运行:
因此,您应该确保至少可以找到一个测试项目,并且错误会消失。希望对你有帮助:)
【讨论】:
感谢您发现问题。由于社区 PR,它现在已在示例存储库中修复。 这也适用于我的实例,很好的解释,谢谢! @KraigBrockschmidt-MSFT - 更新最初链接的教程需要什么?我注意到它自 2019 年 11 月首次发布以来一直没有更新,至少可以说非常令人沮丧。以上是关于Microsoft azure devops python 管道失败,Bash 以代码“5”退出的主要内容,如果未能解决你的问题,请参考以下文章
Azure devops 中的 Docker 构建失败并显示消息无法加载文件或程序集“Microsoft.CodeAnalysis,
[Microsoft Teams]使用连接器接收Azure Devops的通知
Microsoft.NET.Sdk.CrossTargeting.targets 上的 Visual Studio Build in Azure DevOps 管道错误