为什么unittest要求__init__.py出现在Python 3.6中?

时间:2017-12-31 19:07:33

标签: python python-3.6 python-unittest

我只是在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时,两个命令的工作方式相同。

0 个答案:

没有答案