【发布时间】:2015-07-29 03:19:41
【问题描述】:
我想每小时在 prod 服务器上运行 PHPUnit 并将结果写入文件。这是 crontab 行:
0 * * * * cd /path/to/project && /usr/local/bin/phpunit --exclude-group acceptance > phpunit.result
当我手动运行该命令时,phpunit.result 包含预期的结果,但是当使用 crontab 时,phpunit.result 中只有 PHPUnit 标头:
Sebastian Bergmann 及其贡献者的 PHPUnit 4.6.4。
从 /path/to/project/phpunit.xml 读取配置
如何使用 crontab 将 PHPUnit 结果正确输出到文件?
【问题讨论】:
-
看起来进程挂起。您可以使用
ps ax | grep php验证这一点吗? -
我认为它在启动后立即停止。当我手动运行 phpunit 时,完成所有测试需要 3-4 分钟,我可以看到 phpunit 进程。如果是 crontab 作业,我无法在正确的时间看到该过程。
-
你在 cron 日志中有什么?如果是空的,可以试试
strace -f的cron进程,看看phpunit启动时会发生什么。 -
@user3584460 在 cron 日志 (
grep CRON /var/log/syslog) 中有 expected output。strace -f cron不是很有帮助,这里是 output -
您正在尝试启动一个新的
cron进程,但这是行不通的,因为cron已经在运行。尝试附加到现有流程 -strace -fp cron_process_id(我认为我在之前的评论中没有很好地解释并认为隐含了-p选项)。
标签: php phpunit output crontab