pytest 在全局setup中获取当前执行用例文件名
时间: 2024-11-13 18:20:57 浏览: 20
pytest_parallel
`pytest`是一个流行的测试框架,它允许你在测试集开始前(即全局设置阶段)执行一些初始化操作。如果你想要在全局setup中获取当前正在执行的测试用例所在的文件名,可以使用`pytest`提供的钩子函数`conftest.py`中的`request`对象。
首先,在项目根目录下的`conftest.py`文件中添加以下内容:
```python
def pytest_runtest_protocol(item):
# item.nodeid包含测试用例的完整名称,从中我们可以解析出文件名和行号等信息
test_file = item.nodeid.split("::")[0]
# 使用os.path.splitext去除路径和扩展名,只保留文件名
current_test_file = os.path.splitext(os.path.basename(test_file))[0]
# 现在current_test_file就是你要找的文件名
print(f"当前执行的测试用例文件名为: {current_test_file}")
```
然后,在每个测试模块(`.py`文件)中,`pytest_runtest_protocol`会在执行每个测试用例之前被调用。
注意:`nodeid`的格式通常是`{test_module}:{function}:{line_number}`,所以你需要根据实际情况调整解析规则。
阅读全文