您如何在pytest中测试单个文件?我只能在文档中找到忽略选项,而没有“仅测试此文件”选项。
最好是在命令行而不是上运行setup.cfg
,因为我想在ide中运行不同的文件测试。整个套件花费的时间太长。
Answers:
只需pytest
使用文件的路径运行
就像是
pytest tests/unit/some_test_file.py
addopts
如果在其中添加路径,显然在setup.cfg中会出现问题。
这很简单:
$ 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
path/to/test.py::test_method
,我得到了错误>错误:未找到:/home/namgivu/NN/code/myproject/tests/models/test_bill.py::test_generate_for_today_normal_cycle(无名称'/ home / namgivu / NN / code / myproject / tests / models /test_bill.py::test_generate_for_today_normal_cycle在[<Module'tests / models / test_bill.py'>]中的任何一个)
-k my_test[a test id here]
不起作用,到目前为止-k "my_test and a and test and id and here"
,我所能管理的最好的方法几乎不是一种友好的格式。