1
我很難理解軟件包,特別是如何在軟件包中使用unittest。我看了這個問題(),但是這個問題的正確答案並沒有解決我的問題。我有以下結構:Python單元測試導入問題
model
|-- __init__.py
|-- boardmodel.py
|
|-- exceptions
| |
| |-- __init__.py
| |-- exceptions.py
|
|-- test
|-- __init__.py
|-- test_boardmodel.py
與以下文件/導入:
模型/ __ init__.py:
import model.exceptions.exceptions
import model.boardmodel
模型/異常/ __ init__.py:
無內容
模型/測試/ __ init__.py:
包含裏面什麼也沒有boardmodel.py
進口::
from model.exceptions.exceptions import ZeroError, OverlapError, ArgumentError, ProximityError
進口內test_boardmodel.py:
import unittest
from model.boardmodel import Board, Ball, Wall
from model.exceptions.exceptions import ProximityError
我把自己放在模型目錄下,我運行python -m unittest test.test_boardmodel.py
。我得到以下信息:
ERROR: test_boardmodel (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: test_boardmodel
Traceback (most recent call last):
File "/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/unittest/loader.py", line 153, in loadTestsFromName
module = __import__(module_name)
File "/Users/sahandzarrinkoub/Documents/Programming/pythonfun/BouncingBalls/balls/src/model/test/test_boardmodel.py", line 3, in <module>
from model.boardmodel import Board, Ball, Wall
ModuleNotFoundError: No module named 'model'
我有點隨囗如何工作和模塊/包看了什麼位置時,執行的import語句丟失。爲什麼找不到model
?
我要補充一點,如果我從列出的所有進口刪除model.
,測試工作,但我不能從「外部」再使用包裝:
src
|-- visual.py
|
|-- model
|-- __init__.py
|-- boardmodel.py
|
|-- exceptions
| |
| |-- __init__.py
| |-- exceptions.py
|
|-- test
|-- __init__.py
|-- test_boardmodel.py
內visual.py:
import model
from model.boardmodel import Board