背景:我正在尝试微调我们的覆盖率指标。对于许多开发人员而言,经常发生新的子模块被提交而未被使用(例如,提交将在稍后的生产代码中使用的新模块)。由于大多数时候这些都是子模块,如果模块的成员从未被调用过,coverage.py
将不知道它们,给出错误的覆盖报告。显然,我不能依赖开发人员在.pylintrc
文件中添加这些模块,因此最好的方法是在顶级列表下生成所有可用python子模块的树。我需要像
module_list = ('module_a', 'module_b',)
for module_name in module_list:
module = importlib.import_module(module_name)
module_tree = get_submodules(module)
在这里我期待这样的事情:
{
'module_a': {
'module': <module 'module_a' from …>,
'submodules': {
'module_a.submodule1': {
'module': <module 'module_a.submodule1' from …>,
'submodules': {}
},
'module_a.submodule2': {
…
是否可以不篡改目录路径?