与 factory boy 和 pytest 一起使用的自定义 faker 提供程序

dep*_*ros 5 django pytest python-3.x faker factory-boy

我正在尝试添加一些自定义的 faker 提供程序以与factory_boy和一起使用pytest

我把提供者放在 faker_providers/foo.py/Provider.

my factories.py文件中,我必须导入foo.py然后通过运行注册:

factory.Faker.add_provider(foo.Provider)
Run Code Online (Sandbox Code Playgroud)

我正在考虑使用pytest_sessionstart(session)自动注册faker_providers. 有没有办法做到这一点?

对于组织和注册自定义提供程序的其他方式的任何建议也将不胜感激。

Max*_*x V 0

这似乎是一个设计选择,只有你知道最好的答案。

但是,我建议在将所有测试添加到配置文件中faker = Faker()之后对所有测试实例化一次。providers并从那个地方导入faker到需要的地方。

这似乎conftest.py是一个不错的选择。