![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/allure-framework/allure-php-commons/ |
# Allure PHP Commons [](https://packagist.org/packages/allure-framework/allure-php-commons) [](https://github.com/allure-framework/allure-php-commons2/actions/workflows/build.yml) [](https://shepherd.dev/github/allure-framework/allure-php-commons2) [](https://shepherd.dev/github/allure-framework/allure-php-commons2) [](https://packagist.org/packages/allure-framework/allure-php-commons) This repository contains PHP API for Allure framework. The main idea is to reuse this API when creating adapters for different test frameworks. ## Getting started In order to use this API you simply need to add the following to **composer.json**: ```json { "require": { "php": "^8", "allure-framework/allure-php-commons": "^2" } } ``` ## Custom attributes You can easily implement custom attributes and use them with your test framework. In most cases you would like to implement [`Qameta\Allure\Attribute\AttributeSetInterface`](./src/Attribute/AttributeSetInterface.php) that allows to set several attributes at once: ```php <?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 { } ``` You can also implement particular attribute interfaces instead of using one of the standard implementations: - [`Qameta\Allure\Attribute\DescriptionInterface`](./src/Attribute/DescriptionInterface.php) - [`Qameta\Allure\Attribute\DisplayNameInterface`](./src/Attribute/DisplayNameInterface.php) - [`Qameta\Allure\Attribute\LabelInterface`](./src/Attribute/LabelInterface.php) - [`Qameta\Allure\Attribute\LinkInterface`](./src/Attribute/LinkInterface.php) - [`Qameta\Allure\Attribute\ParameterInterface`](./src/Attribute/ParameterInterface.php) ## Other usage examples See [allure-phpunit](https://github.com/allure-framework/allure-phpunit) and [allure-codeception](https://github.com/allure-framework/allure-codeception) projects.