首页 > 解决方案 > 检查是否可以在不运行脚本的情况下进行所有导入

问题描述

问题描述

我有一个巨大的项目,其中有很多 python 文件。不幸的是,这个项目没有被测试正确覆盖,我们面临着......进口的问题:)

我的目标是执行所有 python 脚本的“试运行”(不执行它们),以确保正确导入所有模块(尤其是这些本地模块)并列出所有无法导入的无效脚本。

例子

让我给你第一个例子(script1.py):

from NON_EXISTING_local_module import non_existing_class
import time


def test_something():
    time.sleep(10)


test_something()

导入 NON_EXISTING_local_module 是不可能的,就像它在 Python 中通过 ImportError 异常正常完成一样(script1.py 标记为无效)

第二个例子(script2.py):

from EXSISTING_local_module import existing_class
import time


def test_something():
    time.sleep(10)


test_something()

在这里我想看到一切都很好(导入没有问题)并且方法 test_something() 根本没有执行(无需等待 10 秒)(script2.py 标记为有效)

我的研究

我知道有一个选项可以执行并获得它的结果:

python -c 'import module'

但它不适用于本地模块

更重要的是,RobotFramework 具有 --dryrun 之类的选项,如下所述: http ://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#dry-run 我正在寻找完全相同的解决方案,但对于纯 Python 脚本。

非常感谢您的任何提示!

标签: python

解决方案


您可以使用 try-except 例如:

import time
try:
    import NON_EXISTING_local_module
except ImportError:
    time.sleep(10)

*您也可以使用其他例外。


推荐阅读