代码之家  ›  专栏  ›  技术社区  ›  Barry

重写/扩展行为ProgressStepPrinter

  •  0
  • Barry  · 技术社区  · 6 年前

    我正在尝试创建behat的扩展 progress output step formatter .

    目标是简单地改变 . 给一个 * 对于每个通过的场景步骤。

    The behat documentation 甚至没有提到创建自定义格式化程序的能力,但是我找到了一个GitHub存储库来实现这一点 behat-format-progress-fail

    但目前还没有关于如何实现这一目标的清晰/简单的概述,我已经尝试过复制和修改它们。有没有一个简单的例子或清晰的文档?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Barry    6 年前

    通过创建一个非常精简的版本 ProgressStepPrinter.php 然后把它包括在 autoload-dev 在里面 composer.json 用它来代替 Behat .

    progresssteppprinter.php程序

    namespace Behat\Behat\Output\Node\Printer\Progress;
    
    use Behat\Behat\Output\Node\Printer\Helper\ResultToStringConverter;
    use Behat\Behat\Output\Node\Printer\StepPrinter;
    use Behat\Behat\Tester\Result\StepResult;
    use Behat\Gherkin\Node\ScenarioLikeInterface as Scenario;
    use Behat\Gherkin\Node\StepNode;
    use Behat\Testwork\Output\Formatter;
    
    final class ProgressStepPrinter implements StepPrinter {
    
        private $resultConverter;
    
        public function __construct(ResultToStringConverter $resultConverter) {
            $this->resultConverter = $resultConverter;
        }
    
        public function printStep(Formatter $formatter, Scenario $scenario, StepNode $step, StepResult $result) {
            //custom logic to print per step here
        }
    }
    

    作曲家.json

    "autoload-dev": {
        "files": [
            "features/bootstrap/ProgressStepPrinter.php",
        ]
    },