【问题标题】:making a PHPUnit assertion only after a system process has finished running仅在系统进程完成运行后进行 PHPUnit 断言
【发布时间】:2010-08-03 11:13:38
【问题描述】:

我正在尝试测试后台 shell 进程的结果(使用 exec() 运行)。为此,我需要 PHPUnit 断言等到进程结束。

我想知道最好的方法是什么?我是否应该将正在运行的进程的检查放在一个循环中,并使用带有非常小的参数的 sleep() 来等待它完成?

【问题讨论】:

    标签: php shell process phpunit


    【解决方案1】:

    由于一天没有人回答,所以我要拍一张:

    第一个冲动的答案是:“你不应该那样做”。它与goals of Unittesting 并不真正匹配(例如,运行该测试并不是很快)。

    如果您正在为调用该脚本的类编写测试,那么您实际上并不是在测试一件事,而是两件事。调用命令行脚本的类和那个脚本是自己的,你可以模拟出外壳部分。

    如果您只是想确保 exec 正常工作,我的第一个想法是构建您的测试,该方式不会将该 shell 进程生成为后台任务,而是作为前台任务并消除对一些“等待”解决方法。

    希望对你有所帮助

    【讨论】:

      猜你喜欢
      • 2011-05-13
      • 2019-01-15
      • 1970-01-01
      • 2017-09-10
      • 1970-01-01
      • 2013-12-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多