0

我有一个项目,我在其中定义了一个测试配置config.py,但我对以下内容感到困惑:

  1. 很多时候config.py ,教程中都会讨论一个测试配置,比如这个

  2. 使用数据库的实际测试通常在 testclass 中定义的应用程序和数据库上完成(有或没有 Flask-Testing)。此测试设置不使用来自config.py

    例如,请参阅 Flask-SQLAlchemy自己的测试装置或此处 列出的一些链接

有一些关于专门为测试创建测试数据库的建议,例如来自testing-with-sqlalchemy

首先,确保将数据库 URI 设置为生产数据库以外的内容!其次,在每次测试运行时创建和删除表通常是个好主意,以确保干净的测试

没有教程说“您不需要测试配置,在您的基础测试类中进行测试设置”。这是假设的吗?

类中的 Tst 配置config.py和显式测试设置 - 它们是否相互排斥?或者有时你把两者结合起来?

PS这里是一个项目配置列表,没有测试配置。

4

1 回答 1

1

tl; dr:这通常是为了方便。首选测试模块中的定义。

config.py 中的测试配置和类中的显式测试设置是否互斥?或者有时你把两者结合起来?

它们不是相互排斥的。你可以把配置值

  • config.py(或)
  • 在测试模块(或)
  • 同时。

是一个使用config.py激励路线的示例。


存储测试配置的决定主要取决于项目。

config.py继承结构自带一套规则。SECRET_KEY为了确保应用程序的安全性,必须在部署阶段更改某些值,例如数据库连接字符串。因此,为了处理这种情况(尤其是在公共开源项目中),通常会有一个类似的文件config.py.default包含所有默认值。开发人员/管理员可以将其复制到 config.py 并根据需要添加值。在Flask 文档中推荐使用这样的默认配置。

在涉及自动化测试的情况下(例如,持续集成),这样的默认配置设置变得不可用。因此,将测试配置存储在模块中提供了一种方便的解决方案。

于 2017-10-18T14:09:20.343 回答