Skip to content
This repository has been archived by the owner on Jan 14, 2019. It is now read-only.

Allure Framework Structure

Ivan Krutov edited this page Sep 23, 2014 · 8 revisions

This page describes internal structure of Allure Framework and is mainly created for developers and contributors.

Allure Modules

Allure Framework source code is organized as a standard Maven multi-module project. Each module is briefly described below.

Allure-e2e

Stores Allure end-to-end tests. The entire report generation lifecycle is tested:

  • Fixed input XML files are copied from the allure-results directory in the allure-model module.
  • Report data in JSON format is generated with the logic from AllureReportGenerator.
  • A web server with the report face is started and a set of Selenium WebDriver tests are run.

Allure-java-annotations

Stores annotations (@Attachment, @Step and so on) to be used in Java-based frameworks such as JUnit and TestNG.

Allure-java-aspects

Stores the implementation of AspectJ aspects. We use aspects for such features as Steps and Attachments because the respective annotations can be present on any method in test code.

Allure-java-adaptor-api

Contains core Allure classes such as event definitions, lifecycle entry point, and exceptions.

Allure-junit-adaptor

Contains the Allure adapter for JUnit test framework. For details, see the respective page.

Allure-model

Stores utility classes and the main XSD file, which is used while generating XML results and when validating such XML coming from outside.

Allure-report-data

Contains the implementation of Java Allure report XML files generator. This generator is then used in Allure CLI, Allure Jenkins Plugin, Allure Maven Plugin and Allure TeamCity Plugin.

Allure-report-face

Stores AngularJs-based report user interface.

Allure-testng-adaptor

Contains Allure adapter for TestNG test framework. See respective page for details.