我正在尝试从 Windows 7 64 位中的 Jenkins 构建步骤启动几个外部应用程序。它们本质上是旨在相互交互并对某些软件执行一系列回归测试的程序。Jenkins 作为 Windows 服务作为在机器上具有管理员权限的用户运行。我认为这完全揭示了我的 Jenkins 安装的任何奇怪之处。
我编写了一个 Python3 脚本,当从 Windows 命令行运行时,它成功地完成了我想要的操作。当我将此脚本作为 Jenkins 构建步骤运行时,我可以看到应用程序已通过任务管理器生成,但没有与它们关联的 CPU 活动,也没有其他证据表明它们实际上在做任何事情(它们产生日志文件等,但这些都没有出现)。在回归测试过程中,其中一个应用程序通常以 25% 的 CPU 运行。
Python 脚本本身运行完成,就好像一切正常。Jenkins 正在正确监控脚本的输出,我可以从作业的控制台输出中看到。我为每个外部应用程序使用 os.spawnv(os.P_NOWAIT, ...) 。subprocess 模块没有做我想做的事,我只是想让这些程序在外部运行。
我什至通过 Cygwin 运行了一个 bash 脚本,该脚本在功能上与 Python 脚本执行相同的操作,但结果相同。知道为什么这些应用程序会产生但不执行吗?
谢谢!