tr33m4n/codeception-module-percy

Percy https://percy.io 为 Codeception 的模块


README

Test

codeception-module-percy

Percy https://percy.io 为 Codeception 模块

需求

  • Node.js >=14.0.0
  • PHP >= 7.4
  • Composer v2

安装

composer require --dev tr33m4n/codeception-module-percy

示例配置

以下示例 acceptance.suite.yml 配置假定 WebDriver 模块已正确配置,以适应您的测试套件,并显示启用 Percy 模块以及设置一些基本配置

modules:
    enabled:
        - WebDriver
        - Percy
    config:
      Percy:
        snapshotConfig:
          widths:
            - 1024
            - 768
            - 320
          minHeight: 1080

以下示例展示了如何在 codeception.yml 文件中配置 percy:process-snapshots

extensions:
    commands:
        - Codeception\Module\Percy\Command\ProcessSnapshots

配置选项

运行

Percy 集成会自动与测试套件一起运行,但需要您的 PERCY_TOKEN 设置为成功发送快照。更多信息请参阅 https://docs.percy.io/docs/environment-variables#section-required

覆盖 node 路径

默认情况下,将使用运行测试套件的用户的 PATH 中定义的 node 可执行文件。但是,可以通过设置环境变量 PERCY_NODE_PATH 为您首选的位置来覆盖它。

仅收集

在某些高级 CI 设置中,可能需要收集具有不同参数的多次运行的全部快照,然后在所有运行完成后一次性发送。这可以通过将 collectOnly 配置设置为 true 来实现。所有运行完成后,运行命令 vendor/bin/codecept percy:process-snapshots 将迭代所有收集到的快照,发送到 Percy,然后清理快照文件夹。需要在 codeception.yml 文件中配置 percy:process-snapshots 命令,请参阅“示例配置”部分

示例测试

<?php

class FirstCest
{
    public function frontpageWorks(AcceptanceTester $I)
    {
        $I->amOnPage('/');
        $I->takeAPercySnapshot('My snapshot name');
    }
}

$I->takeAPercySnapshot 可以传递一个数组作为额外的参数,以覆盖全局设置的 percyCSSminHeightenableJavaScriptwidths,例如

use Codeception\Module\Percy\Snapshot;

$I->takeAPercySnapshot('My snapshot name', [
    Snapshot::WIDTHS => [1024, 768, 320], // Browser breakpoint widths
    Snapshot::MIN_HEIGHT => 1080, // Minimum height of the resulting snapshot
    Snapshot::PERCY_CSS => 'iframe { display: none; }', // Percy specific CSS
    Snapshot::ENABLE_JAVASCRIPT => true // Enable/disable JavaScript
]);