使用してテストしたいアプリケーションがありますが、unittest
いくつか問題があります。私のディレクトリ構造は次のとおりです。
root_dir
├── src
│ ├── cmds
│ │ ├── baz.py
│ │ ├── __init__.py
│ │ └── bar.py
│ └── foo.py
└── tests
├── cmds.py
└── __init__.py
baz
とbar
モジュールをテストしたいのですが、cmds
やろうとしています
root_dir> python2.7 -m unittest tests.cmds
しかし、自分のディレクトリにパッケージをtests.cmds
インポートできません。cmds
src
どうすればこれを機能させることができますか?
root_dir
基本的に、src
とtests
ディレクトリを別々に使用してアプリケーションをテストしたいと考えています。
に追加しようとsrc
しましsys.path
たが、からインポートcmds.baz
するtests/cmds.py
と、まだユニットテストから取得AttributeError: 'module' object has no attribute 'cmds'
されます。
編集:私のインポートとsys.path
ステートメントは次のとおりです。
import sys
sys.path.append('../src')
from cmds.baz import about
そしてトレースバック:
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/usr/lib/python2.7/unittest/__main__.py", line 12, in <module>
main(module=None)
File "/usr/lib/python2.7/unittest/main.py", line 94, in __init__
self.parseArgs(argv)
File "/usr/lib/python2.7/unittest/main.py", line 149, in parseArgs
self.createTests()
File "/usr/lib/python2.7/unittest/main.py", line 158, in createTests
self.module)
File "/usr/lib/python2.7/unittest/loader.py", line 128, in loadTestsFromNames
suites = [self.loadTestsFromName(name, module) for name in names]
File "/usr/lib/python2.7/unittest/loader.py", line 100, in loadTestsFromName
parent, obj = obj, getattr(obj, part)
AttributeError: 'module' object has no attribute 'cmds'