如何将特定于环境的应用程序配置传递给Pytest

时间:2017-01-05 17:58:55

标签: python unit-testing configuration pytest

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

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

Pytest文档中有两种可能性:

  1. 将其放在pytest.ini addopts
  2. 通过custom command-line options
  3. 传递

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

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

1 个答案:

答案 0 :(得分:1)

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

pytest插件的

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