我正在尝试测试后台shell进程的结果(使用exec()运行)。为此,我需要PHPUnit断言等到进程结束。
我想知道最好的方法是什么?我应该在循环中对正在运行的进程进行检查,并使用一个非常小的参数sleep()来等待它完成吗?
答案 0 :(得分:1)
由于没有人回答一天我会去拍摄:
第一个冲动的答案是:“你不应该这样做”。它与goals of Unittesting并不匹配(例如,运行该测试的速度并不快)。
如果您正在为一个调用该脚本的类编写一个测试,那么您并不是真的只测试一个而是两个。调用命令行脚本的脚和脚本是自己的,你可以模拟shell部分。
如果你只是想确保exec工作,那么我的第一个想法就是以一种不会将该shell进程作为后台任务生成但作为前台任务并且不需要一些“等待”解决方法。
希望帮助了一个小小的