我正在module使用python的unittest框架为python模块编写单元测试.
该模块在加载时使用json文件进行一些"预处理",因此它具有以下内容:
module.info['xyz']可以访问和使用它.
在为此编写测试时,我想在每次测试之前重新加载模块,以便module.info在开始当前测试之前,对于每个测试,字典的旧键不再存在.
现在我有一个reload(module)在setUp()但这似乎并没有做的伎俩.我有罗纳尔多,也很想通过引进旧密钥test_A在其他测试,如test_B和test_C那些后执行.
我想知道是否有办法实现我想要实现的目标,或者您是否可以指出我的文档说它无法完成.
从字典中手动删除模块sys.modules似乎对我有用。
import sys
import unittest
import myModule
class MyTest( unittest.TestCase ):
def setUp( self ):
global myModule
myModule = __import__( 'path.to.myModule', globals(), locals(), [''], -1 )
return
def tearDown( self ):
global myModule
del sys.modules[myModule.__name__]
return
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1838 次 |
| 最近记录: |