1.4 KiB
1.4 KiB
项目测试数据库
- 生产问题查询时,默认数据库连接可以根据工厂或环境切换到不同 IP 和业务库;这类连接只用于授权范围内的生产数据只读验证。
- 所有 Django、pytest 及其他自动化测试必须与当前生产查询连接解耦,始终使用固定的
test_ehs_develop测试数据库连接。 - 不能仅依赖当前默认连接的 Django 自动
test_<NAME>命名;即使当前业务库是bxerp或其他库,测试也不应转而使用test_bxerp或其他派生库。 - 不得在生产数据库上运行会建表、迁移、写入或清理数据的测试。
- 生产查询与固定测试库的连接参数均从本机已忽略配置中读取,不在项目记忆、源码或提交信息中记录凭据。
当前实现:
- 固定测试连接保存在已忽略的
config/conf_test.py。 server/test_settings.py加载该连接,manage.py test会自动选择测试 settings;其他manage.py命令仍使用当前业务库连接。- 测试 settings 中的基础
NAME和TEST.NAME都必须是test_ehs_develop,并在启动时校验,防止通过测试 settings 误操作ehs_develop或任何生产库。 - pytest-django 通过项目根目录
pytest.ini固定使用server.test_settings。 - 本地重复运行测试时优先使用
.venv\\Scripts\\python.exe manage.py test --keepdb --noinput。