【发布时间】:2026-01-01 05:05:01
【问题描述】:
给定一个目录tests,其中包含几个子目录,每个子目录都包含测试模块,如何创建一个pytest 固定装置,以便在仅在特定子目录中找到的每个测试之前运行?
tests
├── __init__.py
├── subdirXX
│ ├── test_module1.py
│ ├── test_module2.py
│ ├── __init__.py
├── subdirYY
│ ├── test_module3.py
│ ├── test_module4.py
│ ├── __init__.py
我希望有一个固定装置,它将在每个测试之前运行,仅在 subdirYY 内的模块中找到(在这种情况下,在模块 test_module3.py 和 test_module4.py 中)。
我目前有一个固定装置定义了两次,一次在subdirYY 内的每个模块内,它有效但多余:
@pytest.fixture(autouse=True)
def clean_directory():
...
如果这无法实现,subdirYY 中的每个测试都使用自定义标记 (@pytest.mark.mycustommark) 进行装饰,因此请确保在每个标记有特定自定义标记的测试之前运行某个固定装置也是一个可行的选择。
【问题讨论】:
标签: python testing pytest fixtures