25th / behat-php-errorlog
Requires
- php: >=5.4
- behat/behat: 3.*
- behat/mink-extension: *@dev
This package is not auto-updated.
Last update: 2024-09-24 03:24:54 UTC
README
Behat 3 的 PHP 错误记录上下文。
此上下文继承自 Mink,因此需要运行 Mink 驱动程序。基本上,它在 beforeScenario 钩子中为每个测试场景创建一个日志文件,并在场景之后检查日志文件中是否存在任何内容。
为了在错误日志文件中记录错误,应用程序本身需要调整。此上下文将必要的信息发送到您的应用程序,但应用程序本身需要知道如何处理它。
为此,应用程序和 Behat 运行器必须在同一台机器上,以便两者都可以访问相同的错误日志文件。
Selenium
Selenium 不提供通过标题或其他方式发送此类元信息的方法。因此,将信息传递到您的应用程序的最简单方法是调用一个 URL(必须在上下文配置中提供),并使用应用程序处理其他所有内容。(例如,通过 cookie)。
在我们的情况下,上下文将调用提供的 URL 并带有错误日志文件的完整路径。
安装
只需通过 composer 安装
配置
behat
将上下文添加到您的 behat 配置文件中。有三个构造函数参数
-
directory
它需要放置日志文件的目录。 -
url
可选,但对于 Selenium 测试场景是必需的。请参阅 Selenium 部分 -
size
可选,定义在此大小之后将不再将错误日志文件的内容输出到输出。默认为 2014,使用 0 禁用它。
您的应用程序
根据是普通场景还是 Selenium,您需要调整应用程序以与上下文一起工作。
对于 Selenium 场景,您必须提供 URL 并保存错误日志,例如在 cookie 中。其他场景将通过请求头 X-BEHAT-PHP-ERROR-LOG
获取错误日志的绝对路径。
使用错误日志的绝对路径时,必须设置 php 配置
ini_set("log_errors", 1); ini_set("error_log", $path);
场景
您不需要在场景中进行任何调整即可使其工作。但有一种方法,如果您不想在特定的场景或整个功能文件中运行上下文,您可以使用标签 @ignore-php-logging
来阻止任何 PHP 动作被记录。
待办事项
-
使 Web Api 上市
-
也许不需要 behat 和应用程序在同一台机器上?