gpt4 book ai didi

Python重新加载模块

转载 作者:太空狗 更新时间:2023-10-30 01:29:31 24 4
gpt4 key购买 nike

我正在使用 python 的单元测试框架为 python 模块 module 编写单元测试。

此模块在加载时使用 json 文件进行一些“预处理”,因此它具有以下内容:module.info['xyz'] 可以访问和使用。

为此编写测试时,我想在每次测试之前重新加载模块,以便对于每次测试,字典 module.info 的旧键在开始当前测试之前不再存在。

现在我在 setUp() 中有一个 reload(module) 但这似乎并没有起到作用。我会在它之后执行的其他测试(例如 test_Btest_C)中使用 test_A 引入的旧 key 。

我想知道是否有办法实现我想要实现的目标,或者您是否可以向我指出说明无法完成的文档。

最佳答案

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

关于Python重新加载模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17197688/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com