Mingw64环境下pytest无法解析上级目录的单测试用例路径
问题原因与解决办法
核心原因
这是MSYS2的路径转换机制导致的问题:MSYS2默认会将POSIX风格的路径转换为Windows本地路径,当命令中出现::时,它会被MSYS2误识别为Windows驱动器标识的变体(类似C:\的写法),自动将::替换成;,最终pytest收到的参数变成tests/test-windows.py;test2,而pytest仅能识别::作为测试用例的分隔符,自然无法收集到目标用例。
可行解决办法
- 用单引号包裹目标参数:让MSYS2跳过对参数内特殊字符的解析,执行命令:
pytest 'tests/test-windows.py::test2' - 临时禁用MSYS2路径转换:通过环境变量
MSYS2_PATH_CONV=0临时关闭路径转换功能,执行命令:MSYS2_PATH_CONV=0 pytest tests/test-windows.py::test2 - 使用Windows路径并加引号:即使换成
\作为路径分隔符,也要用引号包裹避免解析,命令如下:pytest 'tests\test-windows.py::test2'
内容的提问来源于stack exchange,提问作者Rodney Price
相关产品推荐
相关产品推荐

