Python 在pytest中使用不同的数据库

Python 在pytest中使用不同的数据库,python,django,sqlite,testing,pytest,Python,Django,Sqlite,Testing,Pytest,我正在使用pytest django插件为我的django应用程序pytest运行测试。我使用MySQL数据库作为django的默认数据库。是否有可能指定pytest只使用不同的数据库进行测试,SQLite 除了为py.test创建特殊的test\u seetings.py--ds=test\u设置之外,我正在寻找不同的选项(如果有的话)。--ds=test\u设置是一个不错的选择 如果您不想在每次调用py.test时键入--ds=…,则可以添加包含以下内容的pytest.ini: [pytes

我正在使用pytest django插件为我的django应用程序pytest运行测试。我使用MySQL数据库作为django的默认数据库。是否有可能指定pytest只使用不同的数据库进行测试,SQLite

除了为py.test创建特殊的test\u seetings.py--ds=test\u设置之外,我正在寻找不同的选项(如果有的话)。

--ds=test\u设置
是一个不错的选择

如果您不想在每次调用py.test时键入
--ds=…
,则可以添加包含以下内容的pytest.ini:

[pytest]
DJANGO_SETTINGS_MODULE = test_settings

作为旁注:在运行测试时,使用生产中使用的同一类型的数据库是一种很好的做法。pytest django提供了在测试运行之间重复使用MySQL/Postgres数据库的选项,为具有大量模型的项目运行一些测试时节省了大量的设置时间。

可能是的重复?我认为这些答案是用于通过manage.py运行测试的。我使用py.test命令运行测试。啊,那么它不适用于您的案例。在生产数据库上运行测试?您指的是代表生产数据库的数据库,还是生产中使用的数据库?我希望不是后者。@OrangeTux我绝对同意你的看法,那句话是误导性的,不是我想要的。澄清一下,我的意思是,如果您在生产中使用PostgreSQL,您应该针对PostgreSQL数据库运行测试套件。您不应该使用生产数据对实际生产数据库运行测试。有些人建议在本地开发中使用SQLite来加速测试——我认为这是一种反模式--重用数据库是一种方法,它仍然可以进行快速测试,并确保您的系统与生产中使用的数据库相同。(我似乎无法编辑原始答案,如果有足够声誉的人可以这样做,请随意重新表述答案)