allure-framework / allure-php-commons
Allure PHP commons
Installs: 1 927 802
Dependents: 3
Suggesters: 0
Security: 0
Stars: 8
Watchers: 8
Forks: 4
Open Issues: 2
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-10-30 14:16:44 UTC
README
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:
{ "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
that allows to set several attributes at once:
<?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
Qameta\Allure\Attribute\DisplayNameInterface
Qameta\Allure\Attribute\LabelInterface
Qameta\Allure\Attribute\LinkInterface
Qameta\Allure\Attribute\ParameterInterface
Other usage examples
See allure-phpunit and allure-codeception projects.