You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过GitHub Workflows在部署前测试Python Azure Function App

解决GitHub Workflow中pytest找不到tests目录的问题

完全可以通过GitHub Workflow运行单元测试,你遇到的问题核心是Workflow环境中代码未正确拉取或命令执行路径不对,以下是具体修复方案:

1. 必须添加代码Checkout步骤

GitHub Workflow默认不会自动拉取仓库代码,必须显式加入actions/checkout步骤,否则工作目录为空,自然找不到tests文件夹。

示例Workflow片段:

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - name: 拉取仓库代码
        uses: actions/checkout@v4  # 这一步是基础,必须添加

      # 后续Python环境配置、依赖安装、测试执行步骤

2. 确认测试命令的工作目录

如果你的tests目录不在仓库根目录,或者Workflow中切换了工作路径,需要通过working-directory参数指定正确路径,或者在pytest命令中写全目录路径。

比如项目结构是:

仓库根目录/
  src/
    function_app.py
  tests/
    test_function.py

需确保测试命令在根目录执行:

- name: 运行单元测试
  working-directory: ./  # 指定为仓库根目录
  run: python -m pytest tests -v

3. 完整测试Job示例(适配Azure Function App场景)

以下是包含环境配置、依赖安装、测试运行的完整Job代码,可直接嵌入你的部署Workflow:

jobs:
  单元测试:
    runs-on: ubuntu-latest
    steps:
      - name: 拉取仓库代码
        uses: actions/checkout@v4

      - name: 配置Python环境
        uses: actions/setup-python@v5
        with:
          python-version: '3.11'  # 替换为你的Azure Function App使用的Python版本

      - name: 安装依赖
        run: |
          python -m pip install --upgrade pip
          pip install -r requirements.txt  # 安装项目依赖(需确保requirements.txt包含pytest)
          pip install pytest  # 如果requirements.txt未包含pytest,单独安装

      - name: 运行单元测试
        run: python -m pytest tests -v

4. 调试目录结构(可选)

若仍有问题,可添加步骤打印当前目录文件,确认tests目录是否存在:

- name: 查看目录结构
  run: ls -la

只要确保代码拉取完整、工作路径正确、依赖安装齐全,就能和本地一样正常运行pytest测试。之后可将测试Job与Azure部署Job关联,设置为测试通过才触发部署。

内容的提问来源于stack exchange,提问作者Rebe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 17:09:25