unittest文件从其根目录导入模块,并直接运行该文件,没有任何问题;但是,当使用发现模式在其上层目录中运行测试时,会出现ModuleNotFoundError。
当然,最简单的解决方案是将该模块移动到运行测试的根目录,但因为我经常需要直接运行测试软件,所以这是不好的
创建副本是可能的,但它违反了DRY规则,并且容易出现各种命名冲突,这不是一个优雅的解决方案。
有其他办法解决这个问题吗?
├──TheTest_0
│ ├──__init__.py
│ ├──meta_test.py
│ ├──mydict.py
├──runTest.ps1
python -m unittest discover --start-directory . --pattern "meta_test.py"
from mydict import Dict
ModuleNotFoundError: No module named 'mydict'
在测试文件的顶部添加这两行代码来解决问题。
import sys,os
sys.path.append(os.path.dirname(__file__))
谢谢@drum