使用pytest-bdd无法关联feature文件与步骤,运行无结果求助
检查步骤文本匹配度
确保feature文件里的场景步骤和代码中@given/@when/@then装饰器的文本完全一致,包括空格、大小写、标点,比如feature写Given I have 3 apples,代码就不能写成@given("I have three apples")。确认pytest的测试目录配置
步骤代码要放在pytest能扫描到的目录下,比如默认的tests/文件夹;如果自定义了测试目录,要在pytest.ini里通过testpaths指定,示例配置:[pytest] testpaths = tests/features tests/steps用终端命令行直接测试
跳过PyCharm的GUI运行,直接在终端执行pytest 你的feature文件路径 -v,看是否能识别到场景。如果终端能运行,说明是PyCharm的配置问题;如果终端也不行,就聚焦到代码和feature文件本身的问题。检查feature文件的Gherkin语法
确保feature文件开头是Feature: 功能名称,场景开头是Scenario: 场景名称,每个步骤必须以Given/When/Then(首字母大写)开头,别写错拼写,比如把Scenario写成Scenrio。验证步骤代码的加载逻辑
步骤代码所在的py文件要符合pytest的命名规则,比如以test_开头,或者在conftest.py里导入步骤模块;别把步骤代码放在类里面,pytest-bdd的步骤装饰器是全局生效的,放类里会导致无法识别。清理PyCharm缓存
如果是PyCharm里的问题,直接删缓存再重启:File -> Invalidate Caches...,勾选Clear file system cache and local history后重启,有时候缓存会导致文件识别异常。
内容的提问来源于stack exchange,提问作者Siddhant Prakash

