Python中循环函数1调用函数2,函数2中import了一个模块,函数1:

def run():
    for a in b:
        runTest(a,patter)

函数2:

def runTest(case_dir, patter):
    import TestRunner
    discover = unittest.defaultTestLoader.discover(case_dir, pattern=patter)

TestRunner中会有一些变量,变量值会动态变化。但是在函数1循环到第二次及以后时,函数2中import模块的变量值不会改变,导致一些动态配置无效。

误区:runTest方法结束时将TestRunner中的变量置为None是无效的,只会在下一次找不到那个变量。

解决方法:

导入模块后使用reload方法重新导入。有人想问这不是多次一举么?

非也非也,下次循环导入时发现模块已存在,就不会再导入,变量也不会有任何变化,重新导入会重新初始化,这样子就把问题解决了。

def runTest(case_dir, patter):
    import TestRunner
    reload(TestRunner)

 

相关文章:

  • 2022-12-23
  • 2021-11-02
  • 2022-12-23
  • 2022-12-23
  • 2021-06-09
  • 2019-01-31
  • 2022-12-23
  • 2021-04-25
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-05-24
  • 2021-07-07
  • 2022-12-23
  • 2021-06-15
相关资源
相似解决方案