allure-framework/allure-php-commons

v2.3.1 2023-05-30 10:55 UTC

README

Version Build Type Coverage Psalm Level License

此仓库包含 Allure 框架的 PHP API。主要思想是在为不同的测试框架创建适配器时重用此 API。

入门

为了使用此 API,您只需将以下内容添加到 composer.json

{
    "require": {
        "php": "^8",
        "allure-framework/allure-php-commons": "^2"
    }
}

自定义属性

您可以轻松实现自定义属性并使用它们与您的测试框架一起使用。在大多数情况下,您可能希望实现 Qameta\Allure\Attribute\AttributeSetInterface,该接口允许一次性设置多个属性

<?php

use Qameta\Allure\Attribute\AttributeSetInterface;
use Qameta\Allure\Attribute\DisplayName;
use Qameta\Allure\Attribute\Tag;

#[Attribute(Attribute::TARGET_CLASS | Attribute::TARGET_METHOD)]
class MyAttribute implements AttributeSetInterface
{
    private array $tags;

    public function __construct(
        private string $displayName,
        string ...$tags,
    ) {
        $this->tags = $tags;
    }
    
    public function getAttributes() : array
    {
        return [
            new DisplayName($this->displayName),
            ...array_map(
                fn (string $tag): Tag => new Tag($tag),
                $this->tags,
            ),
        ];
    }
}

// Example of usage
#[MyAttribute('Test name', 'tag 1', 'tag 2')]
class MyTestClass
{
}

您还可以实现特定的属性接口,而不是使用标准实现之一

其他使用示例

请参阅 allure-phpunitallure-codeception 项目。