2017-09-23 17 views
1

私はパッケージを理解するのに苦労しています。具体的には、unittestをパッケージとともに使用する方法です。私はこの質問を見ましたが、その質問への正解は私の問題を解決しませんでした。以下のファイル/輸入でPython unittestインポートの問題

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::::test_boardmodel.py内部

from model.exceptions.exceptions import ZeroError, OverlapError, ArgumentError, ProximityError 

輸入

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' 

私は少し輸入がどのように動作するかを失ったし、どのような場所インポート文が実行されたときのモジュール/パッケージが探しているんです。 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 

答えて

0

私はなく、テストファイルから、いくつかのファイルからいくつかのモジュールをインポートすることができるという、同じ問題に直面していたので、私はこのソリューション見た:

を210

あなたがテスト/ my_test.pyを持っている場合は、テストのように実行する必要があります。

その後
python -m test.my_test 

は、私が何を望むか、インポートし、エラーを得ませんでした。

関連する問題