25th/behat-php-errorlog

此包最新版本(dev-master)没有可用的许可证信息。

dev-master 2014-11-27 15:00 UTC

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 和应用程序在同一台机器上?