blueday / behat-html-formatter
此包的最新版本(v0.1.0)没有提供许可证信息。
这将创建一个Behat的HTML格式化工具。
v0.1.0
2015-05-27 15:09 UTC
Requires
- php: >=5.3.0
- behat/behat: ~3.0
- twig/twig: ~1.0
This package is auto-updated.
Last update: 2024-09-25 00:56:55 UTC
README
Behat 3扩展,用于从测试结果生成HTML报告。
Twig报告
Behat 2报告
如何使用?
- 此工具可以通过composer轻松安装。
- 在
behat.yml
文件中定义格式化器 - 修改
behat.yml
文件中的设置
安装
先决条件
此扩展需要
- PHP 5.3.x或更高版本
- Behat 3.x或更高版本
通过composer
保持测试套件更新的最简单方法是使用Composer
使用composer安装
$ composer require --dev emuse/behat-html-formatter
使用composer.json
安装
将BehatHtmlFormatterPlugin添加到composer.json
中的依赖项列表中。
{ "require": { "behat/behat": "3.*@stable", "emuse/behat-html-formatter": "0.1.*", }, "minimum-stability": "dev", "config": { "bin-dir": "bin/" } }
然后只需使用composer安装即可
$ composer install --dev --prefer-dist
您可以在其官方网站上了解更多关于Composer的信息。
基本用法
通过在behat.yml
中指定其类来激活扩展
# behat.yml default: suites: ... # All your awesome suites come here formatters: html: output_path: %paths.base%/build/html/behat extensions: emuse\BehatHTMLFormatter\BehatHTMLFormatterExtension: name: html renderer: Twig,Behat2 file_name: index print_args: true print_outp: true loop_break: true
配置
output_path
- Behat将保存HTML报告的位置。此处定义的路径相对于%paths.base%
,省略时默认设置为相同路径。renderer
- Behat将用于渲染的引擎,因此Behat应输出的报告格式类型(允许多个报告格式,用逗号分隔)。允许的值包括- Behat2 - 生成类似于Behat 2生成的HTML报告。
- Twig - 基于Twig的新且更现代的格式。
- Minimal - 超级简洁的HTML输出。
file_name
- (可选)Behat将使用固定的文件名,并在每次构建后覆盖相同的文件。默认情况下,Behat将创建一个使用随机名称的新HTML文件(例如"renderer name"_"date hour")。print_args
- (可选)如果设置为true
,Behat将在报告中添加每个步骤的所有参数。(例如,表格)print_outp
- (可选)如果设置为true
,Behat将在报告中添加每个步骤的输出。(例如,异常)loop_break
- (可选)如果设置为true
,Behat将在打印场景大纲时在每个执行后添加一个分隔换行符。
屏幕截图
存在将屏幕截图嵌入测试失败中的功能。
目前仅支持png图像格式。
要嵌入屏幕截图,您需要使用您最喜欢的webdriver进行屏幕截图,并将其存储在以下文件路径格式中
results/html/assets/screenshots/{{feature_name}}/{{scenario_name}}.png
feature_name和scenario_name变量需要是相关项目名称,不带空格。
以下是一个FeatureContext方法的示例,它将生成上述格式的图像文件
/** * @BeforeScenario * * @param BeforeScenarioScope $scope * */ public function setUpTestEnvironment($scope) { $this->currentScenario = $scope->getScenario(); } /** * @AfterStep * * @param AfterStepScope $scope */ public function afterStep($scope) { //if test has failed, and is not an api test, get screenshot if(!$scope->getTestResult()->isPassed()) { //create filename string $featureFolder = str_replace(' ', '', $scope->getFeature()->getTitle()); $scenarioName = $this->currentScenario->getTitle(); $fileName = str_replace(' ', '', $scenarioName) . '.png'; //create screenshots directory if it doesn't exist if (!file_exists('results/html/assets/screenshots/' . $featureFolder)) { mkdir('results/html/assets/screenshots/' . $featureFolder); } //take screenshot and save as the previously defined filename $this->driver->takeScreenshot('results/html/assets/screenshots/' . $featureFolder . '/' . $fileName); } }
请注意,currentScenario变量需要是类级别的,并在@BeforeScenario方法中生成,因为Behat目前不支持在@AfterStep方法中获取当前场景,其中生成屏幕截图
问题提交
当您需要额外的支持或发现某些奇怪的事情时,请随时创建一个新问题。
许可证和作者
作者: https://github.com/dutchiexl/BehatHtmlFormatterPlugin/contributors