- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如标题所述,我期待找到一种方法来防止在我的 PHPUnit
测试期间在终端中打印 error_log()
消息。
在上面的示例中,被测方法通过 error_log('Don\'t show up'),在测试之间打印其消息。
有什么方法可以防止这种行为,让我的测试日志看起来很漂亮吗?另外,有什么方法可以捕获消息并测试其输出吗? (对于消息不是简单字符串的情况)。
最佳答案
Is there any way to prevent this behavior, to keep my test log fancy? Also, is there any way to catch the message and test its output? (for the cases where the message isn't a simple string).
首先你看到的不是测试日志。 显示 的错误消息实际上是在标准错误流上,而不是在标准输出流上。对于您所看到的,这没有太大区别,因为终端显示两者混合,记录到文件不会记录该错误消息。
这是 b/c error_log()
将错误消息写入配置的日志文件(PHP 的 error_log
ini 指令)。由于 Phpunit 使用 PHP 的 CLI 版本(在命令行上)运行,因此默认情况下是上述标准错误流。
这还包含所有需要的信息,而不是输出到标准错误流,而是捕获它,例如暂时做个测试:
$capture = tmpfile();
$saved = ini_set('error_log', stream_get_meta_data($capture)['uri']);
error_log("Test for this message");
ini_set('error_log', $saved);
var_dump(stream_get_contents($capture));
这将提供通过 error_log()
和临时文件输出的内容:
string(59) "[06-Jul-2017 12:14:45 Europe/Amsterdam] Test for this message
"
临时文件会在测试用例结束时自动删除。
关于php - 防止在测试期间将 error_log() 消息打印到终端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44882321/
我运行了 phpinfo() 并且 error_log 指令只是说 error_log。那指的是什么文件?即 error_log 的完整路径是什么? 最佳答案 报价 from the document
我有一个使用 error_log() 输出错误的 cron 脚本.然而,有时日志文件会变得很大。是否error_log()是否具有在达到特定定义的行数后自动存档日志文件的 native 函数?我可以编
我想通过将失败的登录尝试写入Apache错误日志来提高PHP CMS的安全性。我的想法是,它随后将与fail2ban一起使用,从而禁止试图拖出的所有IP地址强制猜测CMS管理员登录名的密码。 另外,如
我一直在尝试编写一个可以在网站上使用的错误处理类,如果出现错误,它会向我发送电子邮件。问题是,当我分析应用程序时,它被 error_log 函数阻塞。这是我的代码(省略类: class ErrorHa
如何获得动态虚拟主机的错误日志文件? server { listen 80; server_name ~^(?[^.]*).(?[^.]*).dev.example.com;
我公司有一个大型主机,但它不由我们管理,我们看不到配置文件,但我想在我们的本地测试服务器上回复此功能。 我是我公司的新人,想开始一些应用程序调试,以解决客户的一些次要和主要问题,但文件量太大,以至于单
当我使用函数 error_log 时使用 $message_type = 1 - 通过电子邮件发送,我需要传递给 sendmail 额外参数 "-f"。 $发件人邮件 有什么方法可以将参数传递给发件人
标题几乎说明了一切。我一直在努力让这个工作一整天。我正在创建一个基于 PHP 的登录系统,我需要进行一些调试。现在对我来说最有用的是能够在整个 PHP 程序的某些点将调试消息写入文件。根据文档,看起来
我研究了不同的方法和指令,包括: auto_prepend_file .user.ini 文件 getcwd() 调试回溯() 而且我似乎无法找到一种方法来更改 error_log 的路径以登录与包含
我正在开发一个不使用任何框架,也不使用debug = 1的基本应用程序。我试图弄清楚如何显示php的var_dump和error_log,但是我不确定它们应该在哪里打印。 我在本地主机上使用PHP的内
如标题所述,我期待找到一种方法来防止在我的 PHPUnit 测试期间在终端中打印 error_log() 消息。 在上面的示例中,被测方法通过 error_log('Don\'t show up'),
如标题所述,我期待找到一种方法来防止在我的 PHPUnit 测试期间在终端中打印 error_log() 消息。 在上面的示例中,被测方法通过 error_log('Don\'t show up'),
来自 Laravel 的所有日志都进入 storage/logs。不幸的是,我无权访问此目录。我什至无法检查是否有任何文件或阅读它们。我只能请求不会给我这些文件的日志。我会得到 error_log、a
php 函数 error_log() 允许您将日志发送到电子邮件,将第二个参数设置为 1。我这样做了,但我想在 html 中显示消息。代码如下所示: error_log($this->_errorMs
我正在编写一个查询我的数据库的函数,如果 mysql 查询由于某种原因出错,我希望我的函数返回一个值(在本例中为 -1),指示查询失败,而不是消失整个脚本。 通常我只使用这个结构: $result =
我有这个 PHP 代码: error_log('my message 1'); .... error_log('my message 2'); ... error_log('my message 3'
PHP 5.6 有什么方法可以定义使用error_log时显示的日期格式? 我用它来记录来自某个脚本的消息和错误。似乎 set_error_handler won't handle all error
我正在运行 nginx 和 PHP 5.5,当传递的字符串很长时,我所有的 error_log 消息都会被截断。 我已经更新了我的 php.ini 文件并将日志最大长度从 1024 增加到 0(无最大
我在这里做错了什么? 我在 .ini 文件中设置了 error_log 以及 error_reporting = E_ALL | E_STRICT. 我还缺少什么?这通常给了我。我希望在 .ini 文
如何在使用 error_log() 时插入换行符在 PHP 中? 我尝试使用 和 \n ,但这些都不起作用。 最佳答案 添加错误信息时使用双引号。 error_log("This is a two l
我是一名优秀的程序员,十分优秀!