Turns folder of gherkin feature files into a docx file.
Project description
Feature reporter
"Feature reporter" comes from the need to provide MS Word reports to customer.
It aims to pretty print a set of plain text .feature
files into one shareable document.
Optionally, it adds the last automated execution of these scenarios.
Please note! This package heavily relies on the Behave package in order to process feature file and execution results format.
Moreover, it provides a basic behave csv formatter. You can:
- have a csv result for each scenario.
- have a csv list of each scenario using the behave's dry run option.
In my feature file I usually add a tag for the epic's name (@epic=
) and a scenario id (@id=
).
The csv formatter use these tag by default. Please see below for more details on usage.
Installation
pip install eaiscenarioreporter
Usage
From a python shell
from featurereporter import ExportUtilities
my_export = ExportUtilities()
my_export.feature_repository = "path/to/the/feature/files/folder"
my_export.create_application_documentation()
# Create the demo.docx document in the current folder.
From the command line
GUI (experimental)
You can start the reporter's GUI using the following command :
python3 -m featurereporter
CLI
Feature reporter can be called directly from the command line.
# Display help
> python3 -m featurereporter -h
usage: featurereporter.py [-h] [--tag TAG] [--title TITLE] [--repository REPOSITORY] [--forewords FOREWORDS] [--output OUTPUT] [--execution EXECUTION] [--license]
optional arguments:
-h, --help show this help message and exit
--tag TAG Invariant pointing to a user story
--title TITLE The document's title
--repository REPOSITORY
The folder where the feature files are
--forewords FOREWORDS
The folder where forewords markdown files are. It is not a recursive discovery.
--output OUTPUT The filename the docu
--execution EXECUTION
Behave plain test output in order to also print the last execution result
--license Display the license.
python3 -m featurereporter --repository path/to/the/feature/files/folder
Embedded features
Feature description
All descriptions can use Markdown syntax to enhance the report display in docx.
- The matching
[Bb]usiness [Rr]ules
will be replaced by a title with the correct depthBusiness rules
- The matching sequence
!!Worflow:\s*([\.\d\w\-\_\\\/]*)\s*
points out a puml diagram which will be generated on the fly. The puml file path is relative to the feature folder holder. For example!!Workflow: ../business/workflow.puml
will generate theworkflow.puml
diagram in thebusiness
folder of the feature parent folder.
Forewords inclusion
You can include markdown files as a "Forewords" section. They will be processed in alphabetical order.
- Picture inclusion will be resized to fit the document page.
!!Worflow:\s*([\.\d\w\-\_\\\/]*)\s*
does the same as for feature description. However, the base folder is the forewords' folder.
Result inclusion
You can include the full list of the documentation execution results. It's based on Behave's plain output reporter.
It generates a circular graph (passed, failed, skipped) and list each scenario result.
There is no control on the sections order nor ability to display only failed scenarios.
Additional installation
Currently, all puml schema are processed using the GraphViz library. Your system needs java and GraphViz.
The plantuml's jar version is 1.2022.1. Please see PlantUml page.
Behave csv formatter
To use the default setting just use the following (-d
is for dry-run)
behave -d -f featurereporter.csvformatter:EaiCsv -o output.csv
Add in behave.ini
the following to update the tag setting. You can have a =
symbol in your tag definition.
[behave.userdata]
EaiCsv.epic = my_epic_tag
EaiCsv.scenario = my_scenario_id_tag
The csv output is
epic, feature_name, scenario_id, scenario_name, status, order
"epic name fetched from the epic's tag", "feature name", "scenario id fetched from the id's tag and order for outline scenario", "scenario name", "execution status", "order for outline scenario"
The first line contains the csv header.
Behave csv 'full' formatter
To use the default setting just use the following (-d
is for dry-run).
Please mind this formatter is for dry-run only.
behave -d -f featurereporter.csvformatter:EaiCsvFull -o output.csv
Add in behave.ini
the following to update the tag setting. You can have a =
symbol in your tag definition.
[behave.userdata]
EaiCsv.epic = my_epic_tag
EaiCsv.scenario = my_scenario_id_tag
The csv output is
epic, feature_filename, feature_name, feature_tags, feature_description, scenario_id, scenario_name, scenario_tags, scenario_description, scenario_is_outline, scenario_steps
"epic name", "feature filename", "feature name (following the 'Feature:' element)", "feature tags", "feature description", "scenario id fetched from the id's tag", "scenario name", "scenario tags", "scenario description", "True if the scenario is an outline one", "scenario's steps without background"
The first line contains the csv header.
Disclaimer
This tool is still under development. There is currently no arguments control nor formal tests.
I use it in my daily work to produce report.
Please contact me for any concern.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file eaiscenarioreporter-0.4.10.tar.gz
.
File metadata
- Download URL: eaiscenarioreporter-0.4.10.tar.gz
- Upload date:
- Size: 9.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.0 importlib_metadata/5.2.0 packaging/23.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d21c013400aedd8b400849a86e1c97fdb6ea66c804ccd8bcf8764afd426b86da |
|
MD5 | 850dc337d4a48c8cfb51ef54307d502a |
|
BLAKE2b-256 | 00241dee8cba23ec1b56c3581f55bb76ee8d2276d1be2fd8e79201b933392d7f |
File details
Details for the file eaiscenarioreporter-0.4.10-py3-none-any.whl
.
File metadata
- Download URL: eaiscenarioreporter-0.4.10-py3-none-any.whl
- Upload date:
- Size: 9.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.0 importlib_metadata/5.2.0 packaging/23.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a4f3946e893c9f9733edbd46cf55c752b8bb6793bfeb7509c3054a608ad8b7bf |
|
MD5 | bdc13746bff7fe8c0c90b1e61df16890 |
|
BLAKE2b-256 | 6f0d44d771f5f78fea1c817168aee3c63e1e38c403c988e6467d1b71c3670017 |