This repository contains PHP API for Allure framework. The main idea is to reuse this API when creating adapters for different test frameworks.
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"
}
}
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
See allure-phpunit and allure-codeception projects.