python unittestしたときに別モジュールを読み込まない
Python3.6.3
ディレクトリ構成
sample_project
┣ bin
┃ ┣ __init__.py
┃ ┣ class_BaseModule.py
┃ ┣ class_module.py
┃ ┗ main.py
┣ test
┃ ┣ __init__.py
┃ ┗ test_class_module.py
┗__init__.py
class_BaseModule.py
class base:
def __init__(self):
pass
def get_base(self):
return 'base'
class_module.py
import class_BaseModule
class class_sample:
def __init__(self):
pass
def get_(self):
cls = class_BaseModule.base()
return cls.get_base()
main.py
import class_module
cls = class_module.class_sample()
print(cls.get_())
test_class_module.py
import unittest
import sys
sys.path.append('../')
from bin.class_module import class_sample
class Test_class_module(unittest.TestCase):
def Test_get_(self):
cls = class_sample()
actual = cls.get_()
self.assertequal('base',actual)
if __name__ == '__main__':
unittest.main()
上記の条件でテストすると
ModuleNotFoundError: No module named 'class_BaseModule'
とされてテスト時に読み込んでくれません。
bin\test_class_module.py
import class_module
class Test_class_module(unittest.TestCase):
....
bin直下にテストモジュールを置く上記条件でテストするとテストが通ります。
テスト時にディレクトリが違う事で宣言したモジュールは読み込みますが明示的に宣言していないモジュールを読まない状態になっていると思います。
今回のディレクトリ構成でclass_BaseModuleモジュールを読む場合ばどのようなコードになりますか?