python 个包出错

Error with python packages

我知道我的问题是多余的,互联网上有很多答案,但我已经尝试了所有建议的解决方案,但我仍然无法解决问题。

我正在尝试将单元测试与 python 中的源代码分开。

所以我的目录如下所示:

HelloWorld
    __init__.py

    source
        __init__.py
        helloworld.py

    test
        __init__.py
        test_helloworld.py

我的 source/helloworld.py 看起来像这样:

class HelloWorld:
    def __init__(self):
        self.message = 'Hello, World!'

我的 test/test_helloworld.py 看起来像这样:

import unittest
from source.helloworld import HelloWorld

class MyTestCase(unittest.TestCase):
    def test_message(self):
        hw = HelloWorld()
        self.assertEqual(hw.message, 'Hello, World!')

if __name__ == '__main__':
    unittest.main()

现在,当我 运行 我在 PyCharm 中的测试时,在将两个目录(源和测试)标记为 Sources root 之后,我的测试 运行s 并说 OK(代码通过测试)

但是当我尝试从终端 运行 我的测试时,我收到错误 ModuleNotFoundError: No module named 'source'

我似乎无法理解这个问题。我一定需要修改 PYTHONPATH 吗?这不是 init.py 文件应该做的吗?

通过在 test/ 中调用脚本,除非您做更多工作,否则您实际上是在使脚本之外的所有内容不可见。相反,移动到 HelloWorld/ 并调用 python -m test.test_helloworld.