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

GitHub Workflow测试报错:无法打开SQLite数据库文件

解决GitHub Actions中SQLite无法创建数据库文件的问题

首先明确:GitHub Actions默认在仓库工作目录拥有写入权限,不需要额外配置权限。你遇到的sqlite3.OperationalError大概率是相对路径的问题,而非权限设置问题。

问题原因

你的测试用例执行时,当前工作目录是仓库根目录(因为Run Tests步骤是在根目录执行的命令),如果测试脚本位于./tests目录下,脚本里用sqlite3.connect('MIND.db')会尝试在仓库根目录创建数据库文件——即便根目录有权限,也可能因路径逻辑不符预期导致报错;或者你误将数据库路径指向了不存在的目录,引发无法写入的问题。

解决方法

有两种可靠的处理方式:

  1. 使用绝对路径创建数据库
    在测试脚本中,基于当前脚本所在目录生成绝对路径,确保数据库文件创建在可写入的位置:

    import os
    import sqlite3
    
    # 获取当前测试脚本的绝对目录
    script_dir = os.path.dirname(os.path.abspath(__file__))
    # 拼接数据库文件的绝对路径
    db_path = os.path.join(script_dir, 'MIND.db')
    conn = sqlite3.connect(db_path)
    
  2. 切换测试步骤的工作目录
    修改GitHub Workflow的Run Tests步骤,切换到tests目录执行测试,此时脚本中的相对路径会直接指向tests目录:

    - name: Run Tests
      working-directory: ./tests
      run: python -m unittest discover -p '*.py'
    

额外验证(可选)

如果仍怀疑权限问题,可以在测试步骤前添加验证命令,确认工作目录的写入权限:

- name: Verify write permission
  run: |
    touch test_write.txt
    echo "Write test passed"
    rm test_write.txt

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 17:10:03