如何在 pytest 下测试单个文件

如何在 pytest 中测试单个文件?我只能在文档中找到忽略选项和没有“仅测试此文件”选项。

最好是在命令行而不是 setup.cfg上运行,因为我想在 ide 中运行不同的文件测试。整个套房花的时间太长了。

108579 次浏览

只需运行带有文件路径的 pytest

比如

pytest tests/test_file.py

使用 ::语法在测试文件中运行特定的测试:

pytest test_mod.py::test_func

这里的 test_func可以是一个测试方法或类(例如: pytest test_mod.py::TestClass)。

有关更多方法和细节,请参见文档中的 “指定要运行的测试”

这很简单:

$ pytest -v /path/to/test_file.py

-v标志是为了增加详细程度。如果您想在该文件中运行特定的测试:

$ pytest -v /path/to/test_file.py::test_name

如果您想运行测试,您可以使用以下命名模式:

$ pytest -v -k "pattern_one or pattern_two" /path/to/test_file.py

您还可以选择标记测试,因此可以使用 -m标志来运行标记测试的子集。

Test _ file. py

def test_number_one():
"""Docstring"""
assert 1 == 1




@pytest.mark.run_these_please
def test_number_two():
"""Docstring"""
assert [1] == [1]

运行标有 run_these_please的测试:

$ pytest -v -m run_these_please /path/to/test_file.py

这对我很有效:

python -m pytest -k some_test_file.py

这也适用于单独的测试功能:

python -m pytest -k test_about_something