【问题标题】:PHPUnit + crontab: only header when output result to filePHPUnit + crontab:将结果输出到文件时只有标题
【发布时间】: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 outputstrace -f cron 不是很有帮助,这里是 output
  • 您正在尝试启动一个新的cron 进程,但这是行不通的,因为cron 已经在运行。尝试附加到现有流程 - strace -fp cron_process_id(我认为我在之前的评论中没有很好地解释并认为隐含了 -p 选项)。

标签: php phpunit output crontab


【解决方案1】:

您可以只使用一个使用完整路径的命令。比如:

php /usr/local/bin/phpunit -c /path/to/project/phpunit.xml > /tmp/phpunit.log 2>&1

它也会将 std 错误重定向到文件。然后,您将在运行这些测试时看到实际发生的情况。

【讨论】:

  • 抱歉,我的回复延迟了。先生,您是救生员!出于某种原因,从 crontab 运行 phpunit 时出现 PHP 致命错误。但现在我可以看到发生了什么并且可以修复错误。谢谢!
【解决方案2】:

在Linux系统中这样使用推荐...

  1. sudo crontab -e =>(创建 cron 选项卡)

    ->学习命令= */2 * * * * wget(我每2分钟创建一次crontab..)

    -> 为 crontab 创建命令 = */2 * * * * wget -q http://localhost/trigger_yoururl

    -> ^o 运行它..

    -> ^x 退出那个..

  2. sudo crontab -l =>(cron 选项卡的列表视图)

  3. sudo crontab -r =>(删除 cron 选项卡)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-12
    • 1970-01-01
    • 2018-11-30
    • 2020-02-26
    相关资源
    最近更新 更多