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
.
我知道我的问题是多余的,互联网上有很多答案,但我已经尝试了所有建议的解决方案,但我仍然无法解决问题。
我正在尝试将单元测试与 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
.