我正在尝试使用pytest
配置系统编写单元测试,该配置系统应该在几个不同的位置查找配置文件。我可以pyfakefs
通过fs
插件使用来创建一个夹具,该夹具提供一组文件,包括一个位置的配置文件,但我希望进行单元测试以检查两个位置并且首选正确的位置。
我最初的想法是我可以创建第一个夹具,然后添加一个文件:
@pytest.fixture()
def fake_files(fs):
fs.create_file('/path/to/datafile', contents="Foo")
yield fs
@pytest.fixture()
def user_config(fake_files):
fake_files.create_file('/path/to/user/config', contents="Bar")
yield fake_files
这背后的想法是任何测试 usingfake_files
都不会找到配置,但 usinguser_config
会。但是,使用该user_config
夹具的单元测试找不到该文件。这可能吗?
实际上在第一个夹具中添加了很多东西,因此将两个系统维护为两个完全独立的夹具会重复代码,我不清楚底层 fs 对象是否甚至可以并行使用。