我有一个程序,在同一个文件夹中包含多个.py文件;我通过在我的IDE,Pycharm中运行一个特定文件来执行它。 (该文件,我们称之为A.py
,调用其中定义的单个main()
方法,因此运行该文件只意味着运行该方法。)这是正在进行的研究的一部分,即使在最佳情况下由于计算复杂性需要很长时间才能完成,所以理想情况下我只需要运行,做其他事情并稍后再检查。
但是,有一个问题:
所以我想做的是,而不是每次发生这种情况时手动重启,设置一个有限的允许重试次数,如果遇到则退出退出代码1,导致下一次尝试。
如果您原谅伪代码,那么在第二个文件中就会出现这样的情况:
from a import main
numtries, maxtries = 0, 10
while numtries < maxtries:
ec = exitcode(main)
if ec != 0: numtries += 1
可以这样做吗?
答案 0 :(得分:0)
这是一个有趣的问题,因为您描述的是非单元测试(因为可能存在SSL依赖关系),因为您的代码需要您无法控制的依赖项。
您是否可以重新编写单元测试以覆盖您可以直接控制的代码?然后将SSL-Types移动到更高模块的测试策略。
关于伪代码......如果你在得到正确的答案之前觉得有3个问题出现了问题(你会尝试SSLException不是吗?)那就去吧.... / p>
但为什么SSL会失败?你的软件应该不处理吗?
答案 1 :(得分:0)
你必须抓住异常。返回代码来自整个执行,但您想要的是:
retries = 0
while retries > limit:
try:
A.main()
except SSLError:
retries += 1
您也可以在shell脚本中执行此操作。然后,您将使用返回码1来检查是否成功,正如您最初提出的那样。但是,我会建议第一种方法。