您如何在pytest中测试单个文件?我只找到了忽略选项,但文档中没有“仅测试此文件”选项。
最好使用命令行运行而不是
最好使用命令行运行而不是
setup.cfg
,因为我想在IDE中运行不同的文件测试。整个套件太慢了。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
path/to/test.py::test_method
,我得到了错误信息:ERROR: 找不到:/home/namgivu/NN/code/myproject/tests/models/test_bill.py::test_generate_for_today_normal_cycle (在任何一个[<Module 'tests/models/test_bill.py'>]中都没有名为'/home/namgivu/NN/code/myproject/tests/models/test_bill.py::test_generate_for_today_normal_cycle'的名称)。- Nam G VU
-k my_test[a test id here]
无法工作,到目前为止我最好的解决方法是
-k "my_test and a and test and id and here"
这几乎不是一个友好的格式。 - Paul D Smith这对我有用:
python -m pytest -k some_test_file.py
这也适用于单个测试函数:
python -m pytest -k test_about_something
pytest directory_to_tests/some_test_file.py
对我来说不起作用。我使用的是Windows Python 3.8.2和Pytest 6.0.1。 - minghua
addopts
会出现问题。 - simonzack::
语法在测试文件中运行单个测试,例如:pytest tests/test_models.py::TestMyModel
。TestMyModel
是包含一部分测试的类。 - FisNaN