我只是在python3.6 unittest中遇到过这一行(/usr/lib/python3.6/unittest/loader.py:286):
is_not_importable = not os.path.isfile(os.path.join(start_dir, '__init__.py'))
导致单元测试发现无法运行我的测试。为什么这行仍然存在于python3.6库中(ubuntu 17.10,idk如果重要的话),如果python 3.3之后不再需要__init__.py?
我认为这是一个错误,但我想要确认。
如果foo目录中没有__init__.py,则以下命令运行正常( {PROJECT_HOME}是占位符):
python3.6 -m unittest discover tests.foo -t {PROJECT_HOME} -p "*.py"
虽然失败(使用ImportError: Start directory is not importable)
:
python3.6 -m unittest discover tests/foo -t {PROJECT_HOME} -p "*.py"
不同之处在于。 - > /当有__init__.py时,两个命令的工作方式相同。