我正在为
mymodule
中的MyClass
编写单元测试,该模块使用keras.models.load_model
。每次我运行我的单元测试时导入keras库会花费几秒钟,并打印消息:“Using TensorFlow backend.” 这种行为非常烦人。在Python2.7中有可能防止导入模块(并使用Mock())吗?
mymodule.py:
from keras.models import load_model
class MyClass:
def __init__(self):
"""I use load_model here"""
...
test_mymodule.py
import unittest
from mock import Mock, MagicMock, patch
from mymodule import MyClass
class MyClassInitializationTestCase(unittest.TestCase):
def test_my_super_test(self):
...
sys.modules['keras'] = MagicMock()
,但是会引发错误。为了不改变mymodule.py文件,我更喜欢像这样模拟所有keras子模块:`sys.modules['keras'] = MagicMock()` `sys.modules['keras.models'] = MagicMock()` `sys.modules['keras.models.load_model'] = MagicMock()`
- Illia Sukonnik