为子目录下的测试定义一个单一的 conftest.py
我有一个应用程序,我的单元测试是这样组织的:
server/
tests/
conftest.py
test_server.py
client/
tests/
conftest.py
test_client.py
在这个设置中,由于conftest.py
文件只包含与其相关的测试的配置,所以没有重复的配置。
现在我在添加集成测试,组织方式是这样的:
tests/
conftest.py
test_integration.py
server/
tests/
conftest.py
test_server.py
client/
tests/
conftest.py
test_client.py
这个新的conftest.py
需要包含我在其他地方定义的所有配置。我该如何设置py.test,以避免重复client/tests/conftest.py
和server/tests/conftest.py
中的所有配置呢?
最接近的类似问题是: 如何在使用pytest时组织配置
谢谢!
1 个回答
2
我处理这种情况的方法是把所有共享的测试工具(fixtures)移动到一个顶层的 conftest 文件里,像这样:
conftest.py
tests/
[conftest.py]
test_integration.py
server/
tests/
[conftest.py]
test_server.py
client/
tests/
[conftest.py]
test_client.py
这样做有时候会让事情看起来不太整洁,因为你会在顶层的 conftest.py 文件里放很多不太相关的测试工具,但这样做简单明了。