Github Actions在Django项目中无法发现pytest测试
Django项目GitHub Actions中pytest无法识别测试的解决方案
问题核心
本地测试正常,但GitHub Actions中无论是pytest还是原生Django测试框架都找不到测试用例,本质是测试目录未被Python识别为合法包、pytest路径扫描配置有误,或是环境加载问题导致的。
修复步骤
1. 为测试目录添加__init__.py
你的测试文件路径为PlaylistAnalyser/playlist_analyser/tests/playlist_tests.py,需在tests目录下创建一个空的__init__.py文件,让Python将该目录识别为可导入的包,否则pytest无法扫描到内部的测试文件。
2. 修正pytest.ini格式与配置
当前pytest.ini所有配置挤在一行,易引发解析错误,改为标准换行格式并添加测试路径指定:
[pytest] DJANGO_SETTINGS_MODULE = playlist_analyser.settings python_files = tests.py *_tests.py testpaths = playlist_analyser/tests
testpaths参数会明确告诉pytest去哪里查找测试文件,避免在根目录下无效扫描。
3. 在GitHub Actions中指定测试路径
若上述步骤无效,直接修改Actions的测试命令,精准指向测试目录:
- name: Run Tests run: | pytest playlist_analyser/tests/ -v
4. 验证Django配置加载
测试依赖Django环境的话,可在测试前添加配置验证步骤,提前排查配置问题:
- name: Verify Django Configuration run: | python manage.py check
额外排查点
- 确认
requirements.txt中包含pytest和pytest-django,避免Actions环境缺失必要测试依赖; - 你的测试文件名
playlist_tests.py符合*_tests.py规则,测试函数以test_开头,这部分命名规范没问题。
内容的提问来源于stack exchange,提问作者user16814449
相关产品推荐
相关产品推荐

