Python单元测试模块抛出;ModuleNotFoundError:没有名为';tests.test#u文件'&引用;

Python单元测试模块抛出;ModuleNotFoundError:没有名为';tests.test#u文件'&引用;,python,python-3.x,unit-testing,anaconda,Python,Python 3.x,Unit Testing,Anaconda,我正在尝试为我一直从事的项目执行一个测试用例。我以前成功地执行单元测试,但现在它出错了。我确信没有任何库的更新或路径的更改。我试着查看源代码并找出它出错的原因,但还没有找到运气。在此方面的任何帮助都将不胜感激 Python版本-3.7.1 下面是示例代码 import unittest class MyTestCase(unittest.TestCase): def test_dummy(self): self.assertEqual(2+2,4) 我在cmd中使用了以下命令来执行

我正在尝试为我一直从事的项目执行一个测试用例。我以前成功地执行单元测试,但现在它出错了。我确信没有任何库的更新或路径的更改。我试着查看源代码并找出它出错的原因,但还没有找到运气。在此方面的任何帮助都将不胜感激

Python版本-3.7.1

下面是示例代码

import unittest

class MyTestCase(unittest.TestCase):

def test_dummy(self):
    self.assertEqual(2+2,4)
我在cmd中使用了以下命令来执行测试

C:\Users\Yadada\Desktop\repo\mwe\mwe>python-m unittest tests\test\u file.py''

我的文件夹结构是

 MWE -|
      |_tests - |
                |_test_file.py
预期的输出是正在成功执行的测试,因为它是一个简单的输出。但我最终得到了以下错误

strclass
ERROR: test_file (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: test_file
Traceback (most recent call last):
  File "C:\Users\yadada\AppData\Local\Continuum\anaconda3\lib\unittest\loader.py", line 156, in loadTestsFromName
    module = __import__(module_name)
ModuleNotFoundError: No module named 'tests.test_file'


----------------------------------------------------------------------
Ran 1 test in 0.001s

在测试文件夹中放置一个空的
\uuuuu init\uuuuu.py
文件后,问题得到解决

有关其工作原理的更好解释,请参阅

感谢@aws_peedient提供的帮助。

使用PyCharm 2020.2,在子文件夹中运行单元测试时,从测试中的父文件夹导入模块时,也会发生“ModuleNotFoundError:No module named”错误。PyCharm默认采用脚本路径执行失败的测试,例如,出现以下错误:

ModuleNotFoundError: No module named '/home/foobar/projects/foo/mypythonproject/moduleundertest'

解决方案是编辑单元测试的目标,并将单元测试目标从“脚本路径”更改为“模块名称”。

您是否在
tests
目录中有
\uuu init\uuuuu.py
文件,以使它们作为模块的一部分可被发现?不,我没有,我以前从未在同一个
tests
目录中有
\uuuu init.py
文件,但测试运行良好。@aws\u学徒-我在tests文件夹中放了一个空的
\uuu init.py
文件,令人惊讶的是单元测试现在可以工作了。我想知道为什么?如果可以的话,你能简单解释一下这种行为吗?如果你把它作为答案贴出来,我会接受的。Thank将比我解释得更好我也会有这个错误,Python 3.3+中不需要_init __; py.py,除非您需要在该目录中运行安装脚本。我在github操作中遇到这个错误,但不是在本地,这并没有为我解决它。