插件窝 干货文章 如何用 pytest 精准运行指定测试文件?

如何用 pytest 精准运行指定测试文件?

运行 文件 测试 试用 528    来源:    2025-03-14

在使用 pytest 运行测试时,你可以通过指定测试文件的路径来精准运行特定的测试文件。以下是几种常见的方法:

1. 运行单个测试文件

你可以直接指定测试文件的路径来运行该文件中的所有测试。例如:

pytest path/to/your/test_file.py

这将运行 test_file.py 文件中的所有测试用例。

2. 运行多个测试文件

如果你想要运行多个测试文件,可以在命令行中指定多个文件路径:

pytest path/to/test_file1.py path/to/test_file2.py

3. 运行特定目录下的所有测试文件

如果你想要运行某个目录下的所有测试文件,可以指定该目录的路径:

pytest path/to/tests/

这将运行 tests/ 目录下的所有测试文件。

4. 使用 -k 选项运行特定测试用例

如果你只想运行某个测试文件中的特定测试用例,可以使用 -k 选项并指定测试用例的名称或部分名称:

pytest path/to/test_file.py -k "test_function_name"

这将只运行 test_file.py 文件中名称包含 test_function_name 的测试用例。

5. 使用 -m 选项运行标记的测试用例

如果你在测试用例中使用了 pytest.mark 标记,可以使用 -m 选项来运行带有特定标记的测试用例:

pytest path/to/test_file.py -m "mark_name"

这将只运行 test_file.py 文件中带有 mark_name 标记的测试用例。

6. 使用 --ignore 忽略特定文件或目录

如果你想要运行某个目录下的所有测试文件,但忽略其中的某些文件或目录,可以使用 --ignore 选项:

pytest path/to/tests/ --ignore path/to/tests/ignore_this_file.py

这将运行 tests/ 目录下的所有测试文件,但忽略 ignore_this_file.py 文件。

7. 使用 pytest.ini 配置文件

你还可以在项目根目录下创建一个 pytest.ini 配置文件,来指定默认的测试文件或目录:

[pytest]
testpaths = tests/

这将默认运行 tests/ 目录下的所有测试文件。

8. 使用 --collect-only 查看将要运行的测试

如果你不确定哪些测试会被运行,可以使用 --collect-only 选项来查看将要运行的测试列表,而不实际运行它们:

pytest path/to/test_file.py --collect-only

这将列出 test_file.py 文件中所有将被运行的测试用例。

总结

通过以上方法,你可以精准地运行指定的测试文件或测试用例。根据你的需求选择合适的方式来运行测试,可以提高测试的效率和准确性。