我正在Windows下的python脚本中运行一些shell测试脚本。 shell脚本正在测试各种模块的功能。
我遇到的问题是某些脚本可能会挂起。为此,我为每个脚本添加了一个超时。此超时具有默认值。但是这个超时值可以通过bash脚本来改变 - 来自bash函数(SetMaxTime) - 我可以修改SetMaxTime。
当使用默认值时,我在python中等待那段时间,如果没有完成bash脚本,我会认为该测试由于超时而失败。
问题是当超时的默认值从bash更改时。有没有办法与python中的bash脚本(使用mingw运行)进行通信?
注意:脚本在Windows下运行。
答案 0 :(得分:1)
当然,您可以在它们之间进行通信,只需从一个文件或一对文件进行读/写(一个用于Python写入,另一个用于读取bash脚本,另一个用于反之亦然)。
答案 1 :(得分:1)
在设置超时值时,让脚本在stdout上输出信息。例如。当超时更改时,脚本可以输出:
TIMEOUT_SECONDS=2
在调用脚本的Python代码中,在调用脚本的输出中查找此标记,并相应地调整测试超时。
为此,您可能希望使用subprocess.Popen方法调用脚本,为stdout指定PIPE
选项。然后,您需要在测试运行时读取子进程stdout属性,从脚本中查找TIMEOUT_SECONDS=xxx
输出并调整超时时间。