python - 检查是否可以在不运行脚本的情况下进行所有导入
问题描述
问题描述
我有一个巨大的项目,其中有很多 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 脚本。
非常感谢您的任何提示!
解决方案
您可以使用 try-except 例如:
import time
try:
import NON_EXISTING_local_module
except ImportError:
time.sleep(10)
*您也可以使用其他例外。
推荐阅读
- html - CSS 仅旋转边框
- python - 从python将单选按钮值插入oracle数据库时出错
- python - Prophet 模型预测负值
- typescript - 如何防止将属性添加到 TypeScript 中的空对象?
- python - Twython Twitter 帖子被截断
- java - Spring Cloud 为什么叫“云”?
- python - 用 Python 从爬取的网站中检测文本的语言
- javascript - 如何将 setTimeout() 与 React Hooks useEffect 和 setState 一起使用?
- python - 安装turtle库时出错
- html - 将复选框与标签左侧对齐