【问题标题】:How to pass environment-specific application configuration to Pytest如何将特定于环境的应用程序配置传递给 Pytest
【发布时间】:2017-05-20 09:20:42
【问题描述】:

我正在使用 Pytest 进行单元测试,我的一些测试需要使用例如数据库连接信息因环境而异(开发、暂存和生产)。

这是在正常执行期间从应用程序配置文件中读取的内容。在一个理想的世界中,我只是为 Pytest 提供一个命令行选项,指定例如我的development.ini 应用程序配置文件,我的测试代码可以将该配置信息提供给正在测试的应用程序代码,而无需我在测试配置文件中复制该信息。这可能吗?

Pytest 文档中让我印象深刻的两种可能性是:

  1. 把它放在pytest.ini 中作为addopts
  2. 通过custom command-line options传递它

(如果我正确理解文档,上述两种方法都应该使用自定义测试夹具。如果有错误,请纠正我。)

提供特定于环境的配置信息供我的测试代码使用的传统方法是什么?或者,不同方法的优缺点是什么?

【问题讨论】:

    标签: python unit-testing configuration pytest


    【解决方案1】:

    您列出的两种可能性——使用pytest.ini 添加选项和允许——是明智的方法,实际上会共享一个实现。我同意使用自定义测试夹具来实现它是有意义的。

    Here is an example 的 pytest 插件,允许用户指定运行 pytest 时使用的 Django 设置(除了 Django 允许您指定设置的其他方式)。如您所见,可以在命令行或pytest.ini 中指定设置文件。这个例子证明你的方法是有价值的。

    【讨论】:

      猜你喜欢
      • 2016-07-08
      • 1970-01-01
      • 2011-09-11
      • 2019-09-05
      • 2016-07-31
      • 1970-01-01
      • 2019-06-18
      • 2013-05-16
      • 1970-01-01
      相关资源
      最近更新 更多