如何指定运行特定的pytest测试方法
要指定运行test_divide_parametrized这个特定的测试函数,你可以使用pytest的命令行选项。以下是几种方式:
1. 使用函数名直接指定
最简单的方法是直接指定测试文件和测试函数名:
pytest test_yaml_data.py::test_divide_parametrized -v
这个命令会:
- 运行
test_yaml_data.py文件中的 - 名为
test_divide_parametrized的测试函数 -v参数表示详细输出,会显示每个测试用例的结果
2. 使用关键字过滤
如果测试函数名称很长或者不方便输入完整名称,可以使用关键字过滤:
pytest -k "divide_parametrized" -v
这个命令会运行所有名称中包含divide_parametrized的测试函数。
3. 如果你为测试添加了标记(marker)
如果这个测试函数有特定的标记,比如@pytest.mark.divide:
pytest -m divide -v
4. 运行失败的测试后重新运行单个测试
如果你在全量测试中发现这个测试失败了,可以先运行所有测试,然后只重新运行这个失败的测试:
# 第一次运行所有测试
pytest
# 只重新运行上次失败的测试
pytest --lf
# 或者只运行上次失败的第一个测试
pytest --ff
5. 结合其他选项
你还可以结合其他选项,比如:
# 运行特定测试并显示详细输出
pytest test_yaml_data.py::test_divide_parametrized -v
# 运行特定测试并显示捕获的输出(比如print语句)
pytest test_yaml_data.py::test_divide_parametrized -v --capture=no
# 在测试失败时立即停止
pytest test_yaml_data.py::test_divide_parametrized -v -x
注意事项
-
如果你的测试函数实际上没有使用
@pytest.mark.parametrize,而是通过fixture进行参数化(如你的代码中所示),使用-v选项会看到更详细的输出,显示每个参数化的测试用例。 -
如果
test_divide_parametrized在不同的文件中有多个,你需要指定文件名确保运行正确的那个。 -
如果你的测试在特定的目录下,需要先进入该目录或者在命令中指定路径。
最常用和最简单的方法是第一种:直接指定文件名和函数名。

...