2017-10-18 115 views
-1

我有一个项目,我首先在config.py 中定义了一个测试配置,然后意识到我没有使用它,因为我在基础测试类中设置了一个测试数据库。config.py中的烧瓶测试配置与基础测试类

所以我很困惑与以下两个事实:

  1. 许多时候是config.py 测试配置教程正在讨论,像this one

  2. 与数据库中的实际测试通常做在测试类中定义的应用程序和数据库 (有或没有Flask测试)。该测试配置也 没有使用测试装置,从config.py

    见例如瓶,SQLAlchemy的own test fixtures 或某些环节上市here

有一个关于测试数据库中的一些建议被专门设计为测试,例如从testing-with-sqlalchemy

首先,确保您将数据库URI设置为生产数据库以外的其他数据库!其次,它通常是一个好主意,以创建和每个测试运行放下你的表格,以确保清洁测试

我的事实担心,没有教程说“你并不需要一个测试配置,请您的基础测试课程中的测试设置“。这是假设吗?

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

P.S. Here是没有测试配置的项目配置列表。

回答

0

tl; dr:这通常是一个方便的问题。优先考虑测试模块中的定义。

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

它们不是相互排斥的。你可以把配置的测试模块(或)在这两个

  • 价值观

      config.py(或)

    Here是一个使用config.py路线来激励的例子。


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

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

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

  • +0

    感谢您的详细解答。我的工作是在测试中使用setup,除非我需要某些可重用于数据库测试之外的目的。 –