我正在关注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”退出。
我启用了系统诊断程序,以便将调试消息添加到日志中。
完整的日志位于https://github.com/michaelhochleitner/debug-azure-devops-python-pipeline/blob/master/log.txt。
如何使管道正常运行?
答案 0 :(得分:2)
如何使管道正常运行?
同意 phd ,该问题来自可以收集 0 个测试项目。
从吊顶中检查this detailed answer:
Pytest根据命名约定收集测试。默认情况下,任何包含测试的文件都必须以test_开头,并且文件中应被视为测试的任何函数也必须以test_开头。
因此,很明显pytest命令找不到以xx.py
开头的任何test_
文件。因此,对于pytest来说,没有可用的测试,这会导致0 items collected
=> Bash exited with code '5'
。
我在上面检查了您的教程并重现了同样的问题:
要解决该问题并使运行成功:
对于我来说,我只是创建了一个新的test_anyname.py
文件,其内容如下(test_xx.py
+ test_xx method
):
然后我的管道在没有Bash exited with code '5'
的情况下成功运行:
因此,您应该确保至少可以找到一个测试项目,并且错误会消失。希望能有所帮助:)