如何用py.test运行指定方法?现有命令失效求解决
问题原因及解决办法
你的问题核心是函数名不符合pytest的测试用例识别规则:
pytest默认只会扫描并执行以下类型的测试用例:
- 以
test_开头的函数 - 以
Test开头的类(不能带__init__方法)中,以test_开头的方法
你的special_test函数不是以test_开头,所以pytest根本不会把它当作测试用例,自然找不到也不会运行。
解决方法
方法1:遵循默认命名规范(推荐)
把函数名改成以test_开头,比如test_special:
def test_special(): assert True
之后执行以下任意命令都能正常运行该测试:
py.test mytest.py::test_specialpy.test mytest.py -k special
方法2:自定义识别规则(不推荐,除非有特殊需求)
如果不想修改函数名,可以通过修改pytest配置文件(pytest.ini)来添加自定义的测试识别规则,比如:
在项目根目录创建pytest.ini,写入:
[pytest] python_files = *.py python_functions = *_test
这样pytest会识别所有以_test结尾的函数作为测试用例,你的special_test就能被识别了。但这种方式会打破pytest的通用规范,团队协作时可能造成混淆,所以优先推荐方法1。
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

