我正在开发一个有配置的程序。我需要为测试和程序的正常运行使用不同的配置。
我使用a
脚本管理所有软件和测试,所有测试都在b
下(例如:manage.py
,python manage.py test ...
,...)
选择我在配置的python manage.py test all
中所做的配置:
python manage.py test db
在我从此文件导入配置后。
但是有时候测试运行器在argv中占据第一位,因此测试在argv [2]中,或者有时我通过直接启动脚本而不是__init__.py
来运行测试。
我的问题是,我可以通过哪些方式在整个代码库中共享变量?
感谢。
答案 0 :(得分:3)
您可以从配置类中完全提取确定配置,并让脚本接受要执行的配置路径的CLI arg。这将允许使用任何配置。
python manage.py test --config=import.path.to.settings
然后你必须将config映射到加载实际模块。 Django使用他们的settings
文件完成了这个问题,你可以参考它来了解实现细节
此外,我建议使用argsparse
,这样您就不必处理sys.argv[1]
它提供的类型强制,文档生成,位置和关键字arg支持