0

我正在 Windows 下从 python 脚本运行一些 shell 测试脚本。shell 脚本正在测试各种模块的功能。

我面临的问题是某些脚本可能会挂起。为此,我为每个脚本添加了超时。此超时具有默认值。但是这个超时值可以通过 bash 脚本来改变——从一个 bash 函数(SetMaxTime)——我可以修改 SetMaxTime。

当使用默认值时,我在 python 中等待那段时间,如果 bash 脚本没有完成,我会认为该测试由于超时而失败。

问题是当超时的默认值从 bash 更改时。有没有办法从 python 与 bash 脚本(使用 mingw 运行)进行通信?

注意:脚本在 Windows 下运行。

4

2 回答 2

1

当然,您可以在它们之间进行通信,只需从一个文件或一对文件中读取/写入(一个用于 Python 写入,一个用于读取 bash 脚本,另一个用于反之亦然)。

于 2012-08-27T11:31:30.300 回答
1

设置超时值时,让您的脚本在 stdout 上输出信息。例如。当超时发生变化时,脚本可以输出:

TIMEOUT_SECONDS=2

在调用脚本的 Python 代码中,在调用脚本的输出中查找此标记并相应地调整测试超时。

为此,您可能需要使用subprocess.Popen方法调用您的脚本,并指定PIPEstdout 的选项。然后,您需要在测试运行时读取 subprocess stdout属性,查找TIMEOUT_SECONDS=xxx脚本的输出并调整超时时间。

于 2012-08-27T11:45:47.053 回答