我正在尝试自动化在Ruby框架中构建的测试套件。我需要使用Python与该测试套件进行交互,以便我们捕获Ruby的输出并从python脚本发送必要的数据。这将使用ruby.exe(Shell)在其上打印输出并从键盘读取输出。基本上是stdin和out的概念。我不打算更改ruby框架,但是我只需要使用python脚本即可实现自动化。
我最初从python中的Popen Pipe概念开始。我能够使用pipe.communicate()API从ruby进程获取输出。但是它只能工作一次。如果我做一个pipe.communicate()它会失败。我了解了Python中的pexpect模块,但该模块用于Unix OS而不是Windows,但是测试套件使用Windows API。然后,尽管我使用了线程技术,但fifo没有任何作用。我得到了KeyBoard模拟器的代码,因此脚本的行为就像键盘一样,但是它在其外壳上打印,而没有在其他进程中使用。 我什至尝试获取进程的PID,然后使用其ID与之通信,但即使失败了。因此,期待这种自动化的新想法。
{{1}}
仅当我需要迭代会话时,我才能启动该过程并与之通信。