Skip to content

Allure integrations for PHP test frameworks: Commons Module

License

Notifications You must be signed in to change notification settings

glo17680/allure-php-commons2

 
 

Repository files navigation

Allure PHP Commons

Version Build Type Coverage Psalm Level License

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:

Other usage examples

See allure-phpunit and allure-codeception projects.

About

Allure integrations for PHP test frameworks: Commons Module

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 100.0%