allure-framework/allure-codeception

Allure Codeception integration

v2.3.0 2023-05-31 14:10 UTC

README

Latest Stable Version Build Type Coverage Psalm Level Total Downloads License

This is an official Codeception adapter for Allure Framework.

What is this for?

The main purpose of this adapter is to accumulate information about your tests and write it out to a set of XML files: one for each test class. This adapter only generates XML files containing information about tests. See wiki section on how to generate report.

Example project

Example project is located at: https://github.com/allure-examples/allure-codeception-example

Installation and Usage

In order to use this adapter you need to add a new dependency to your composer.json file:

{
    "require": {
	    "php": "^8",
	    "allure-framework/allure-codeception": "^2"
    }
}

To enable this adapter in Codeception tests simply put it in "enabled" extensions section of codeception.yml:

extensions:
    enabled:
        - Qameta\Allure\Codeception\AllureCodeception
    config:
        Qameta\Allure\Codeception\AllureCodeception:
            outputDirectory: allure-results
            linkTemplates:
                issue: https://example.org/issues/%s
            setipHook: My\SetupHook

outputDirectory is used to store Allure results and will be calculated relatively to Codeception output directory (also known as paths: log in codeception.yml) unless you specify an absolute path. You can traverse up using .. as usual. outputDirectory defaults to allure-results.

linkTemplates is used to process links and generate URLs for them. You can put here an sprintf()-like template or a name of class to be constructed; such class must implement Qameta\Allure\Setup\LinkTemplateInterface.

setupHook allows to execute some bootstrapping code during initialization. You can put here a name of the class that implements magic __invoke() method - and that method will be called. For example, it can be used to ignore unnecessary docblock annotations:

<?php

namespace My;

use Doctrine\Common\Annotations\AnnotationReader;

class SetupHook
{
    public function __invoke(): void
    {
        AnnotationReader::addGlobalIgnoredName('annotationToIgnore');
    }
}

To generate report from your favourite terminal, install allure-cli and run following command (assuming you're in project root and using default configuration):

allure generate -o ./build/allure-report ./build/allure-results

Report will be generated in build/allure-report.

Main features

See respective PHPUnit section.