Allure Framework Structure
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.