我很困惑如何构建一个包含一个包和unittest的项目。项目目录结构,以便我可以导入包unittest
我有这样的目录结构:
TestProject/
├── package
│ ├── constants.py
│ ├── __init__.py
│ ├── package.py
│ └── tests
│ └── test_package.py
└── usage.py
constants.py
A = 1
__init__.py
from .package import give_A
package.py
from .constants import *
def give_A():
return A
usage.py
from package import give_A
print(give_A())
test_package.py
import unittest
from package import give_A
class Test_package(unittest.TestCase):
def test_simple(self):
self.assertEqual(give_A(), 1)
if __name__ == '__main__':
unittest.main()
一切正常,直到我尝试运行test_package.py
模块,它可以理解不能导入包:
~/Python/TestProject/package/tests $ python3 test_package.py
Traceback (most recent call last):
File "test_package.py", line 3, in <module>
from package import give_A
ImportError: No module named 'package'
但是,这似乎是封装/测试的首选结构。我怎样才能使它工作?或者我应该完全不同(结构,目录,导入,测试执行...)?
尝试'从package.package import give_A'? – Holloway
'ImportError:没有名为package.package'的模块。没有理由说它应该工作,因为包不在PYTHONPATH中,对吗? – Fenikso
你想从哪里运行脚本? – Holloway