我的文件路径如下:

╰─➤  tree
.
├── services
│   └── myservice.py
└── testing
    └── test_myservice.py

测试代码引用了项目文件, 类似
testing/test_myservice.py

from services.myservice import MyService


def test_event_interface():
    assert True

此时想运行单元测试的话

错误的方式:

  • pytest -m testing.test_myservice
  • pytest testing/test_myservice.py

正确的方式:

  • python -m pytest testing/test_myservice.py

这样就可以避免遇到 ModuleNotFoundError: No module named 'xxxx' 的问题,原因参考:python 当前路径和导包路径问题全解析


插一段,我是为了解决 nameko 单元测试,才有了这个疑问的

所以「如何使用 nameko+pytest 测试多层路径下面的 py 文件,避免 ModuleNotFoundError」呢?

其实也很简单,使用 python -m nameko test testing/test_myservice.py 这样格式的就行


universe_king
3.4k 声望678 粉丝