Microsoft Azure devops python管道失败,Bash退出,代码为“ 5”

时间:2020-01-10 15:08:53

标签: python git azure azure-devops azure-pipelines

我正在关注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阶段。 enter image description here

完整的日志位于https://github.com/michaelhochleitner/debug-azure-devops-python-pipeline/blob/master/log.txt

如何使管道正常运行?

1 个答案:

答案 0 :(得分:2)

如何使管道正常运行?

同意 phd ,该问题来自可以收集 0 个测试项目。

吊顶中检查this detailed answer

Pytest根据命名约定收集测试。默认情况下,任何包含测试的文件都必须以test_开头,并且文件中应被视为测试的任何函数也必须以test_开头。

因此,很明显pytest命令找不到以xx.py开头的任何test_文件。因此,对于pytest来说,没有可用的测试,这会导致0 items collected => Bash exited with code '5'

我在上面检查了您的教程并重现了同样的问题:

enter image description here

要解决该问题并使运行成功:

对于我来说,我只是创建了一个新的test_anyname.py文件,其内容如下(test_xx.py + test_xx method):

enter image description here

然后我的管道在没有Bash exited with code '5'的情况下成功运行:

enter image description here

因此,您应该确保至少可以找到一个测试项目,并且错误会消失。希望能有所帮助:)