allure-framework / allure-php-commons
Allure PHP 公共库
v2.3.1
2023-05-30 10:55 UTC
Requires
- php: ^8
- ext-json: *
- doctrine/annotations: ^1.12 || ^2
- psr/log: ^1 || ^2 || ^3
- ramsey/uuid: ^3 || ^4
Requires (Dev)
- jetbrains/phpstorm-attributes: ^1
- phpunit/phpunit: ^9.6.8
- psalm/plugin-phpunit: ^0.18.4
- squizlabs/php_codesniffer: ^3.7.2
- vimeo/psalm: ^5.12
Conflicts
- amphp/byte-stream: <1.5.1
This package is auto-updated.
Last update: 2024-08-30 13:46:06 UTC
README
此仓库包含 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 { }
您还可以实现特定的属性接口,而不是使用标准实现之一
Qameta\Allure\Attribute\DescriptionInterface
Qameta\Allure\Attribute\DisplayNameInterface
Qameta\Allure\Attribute\LabelInterface
Qameta\Allure\Attribute\LinkInterface
Qameta\Allure\Attribute\ParameterInterface
其他使用示例
请参阅 allure-phpunit 和 allure-codeception 项目。