项目目录结构,以便我可以为单元测试导入包
Project directory structure so I can import package for 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'
但是,这似乎是包/测试的首选结构。我怎样才能让它发挥作用?或者我应该完全不同地做(结构、目录、导入、测试执行...)?
或者:
设置您的 PYTHONPATH
,使 TestProject
在其中。
运行 像这样使用 unittest 进行测试:
~/Python/TestProject $ python3 -m package.tests.test_package
使用unittest命令行接口:
~/Python/TestProject $ python3 -m unittest package/tests/test_package.py
有关详细信息,请参阅:https://docs.python.org/3/library/unittest.html#command-line-interface
我对如何构建包含包和单元测试的项目感到困惑。
我有这个目录结构:
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'
但是,这似乎是包/测试的首选结构。我怎样才能让它发挥作用?或者我应该完全不同地做(结构、目录、导入、测试执行...)?
或者:
设置您的
PYTHONPATH
,使TestProject
在其中。运行 像这样使用 unittest 进行测试:
~/Python/TestProject $ python3 -m package.tests.test_package
使用unittest命令行接口:
~/Python/TestProject $ python3 -m unittest package/tests/test_package.py
有关详细信息,请参阅:https://docs.python.org/3/library/unittest.html#command-line-interface