PyTest plugin for generating Difido reports
PyTest plugin for creating flexible and informative test reports
Flexible locally generated HTML report on the running machine
Reports are generated at runtime. No need to wait for test execution to end
Easily attach files and images to the report
Works also in remote mode. You can add Difido server that allows publishing reports to central server
Console reports - Reports to the console in addition to the HTML output mainly for development phase and CI/CD systems
Extensible - Allows to implement and add additional reporters
PyTest >= 4.0.0
Python >= 3
$ pip install pytest-difido
To use the report, add the report fixture to your test cases. You can report simple message, links, HTML elements and more
def test_messaging(report): # Simple message will be added to the report report.that("Simple report message") # link to Google report.link(title='Google', link=r'http:\\www.google.com') # Message will be hidden inside toggle element report.start_level("start toggle") report.that("In toggle") report.stop_level() # Message will appear in bold font report.step("bold message") # HTML element will be added to the report report.html("Table", """ <table> <tr> <th>Company</th> <th>Contact</th> </tr> <tr> <td>ACME Corporation</td> <td>Road Bumper</td> </tr> <tr> <td>DOLO Inc</td> <td>Wired Coyote</td> </tr> </table> """)
Files and images can be attached to the HTML report. The files are copied to the local and remote reports.
def test_files(report): # File will be copied and attached to the report report.file(file_path=os.path.join("resources", "some_file.txt"), description="My text file") # Image will added with thumbnail report.img(img_path=os.path.join("resources", "cat.jpg"), description="Cats are awesome")
Properties can be added to the suite or to each test. The properties are disaplyed in the report and, if ElasticSearch integration is enabled, can be searched.
def test_add_properties(report): # Property will be added to the execution report.add_execution_properties("int_Execution", "66") # Property will be added to the current running test report.add_test_property("double_testProp", "1.56")
If you prefer to use to report without fixtures, or if you want to use it from places other then your test cases, you can intantiate the Report class.
The ‘Report’ class is implemented as singleton so you will always get the same instance
def test_report_without_fixture(): """ If you don't want to get the reporter as fixture or if you want to use it not from test method you can just instantiate the Report class. The Report class is implemented as Singleton """ from difido.report_manager import Report report = Report() report.that("very important message")
This step is not mandatory. Local reports will be generated also without the Difido server. Follow this step only if you wish to
have central server for publishing test results. If all you need is local reports that will be generated on the running machine, skip this step
Download the latest Difido server ZIP file from the Difido releases page
Extract the content of the file
Run the ‘[root]/bin/start.bat’ or ‘[root]/bin/start.sh’ file according to your OS.
Set the host and port in the client configuration as shown in the next section
Add the ‘difido.reporters.RemoteReporter’ to the ‘df_reporters’ list in the configuration. More information about reporters can be found in the ‘Reporters’ section
You can configure the reporter from the pytest.ini file or from the command line.
In the case where a parameter is defined using both methods, the value defined from the command line takes precedence
[pytest] ; Host or ip of Difido server. Default localhost df_host =
192.168.0.13; Port of Difido server. Default 8080 df_port = 8090; Result folder for HTML and console reports. Default is current directory df_output_folder = /etc/log/; Reporters are defined in the following comma-separated list df_reporters = difido.reporters.LocalReporter,difido.reporters.RemoteReporter,difido.reporters.ConsoleReporter
Command line example
$ pytest .\tests\test_report_examples.py --df_host=
df_output_folder - Result folder for HTML and console reports (default .)
df_host - Host or ip of Difido server (default localhost)
df_port - Difido server port (default 8080)
df_reporters - Comma-separated list of reporter classes. The all reporters recieves the event from the report manager
df_description - Description of test execution as shown in the Difido server
Reporters are Python classes that translates the events recieved from the tests and generates a single report format.
The plugin currently includes three types of reporters:
difido.reporters.LocalReporter - Generates local HTML reports to the repors output folder
difido.reporters.RemoteReporter - Pulishes results to the Difido server
difido.reporters.ConsoleReporter - Writes to the conole. At the end of the run the output is also copied to a file in the reports output folder.
You can decide which reporters you want to enabled by adding or removing the classes from the ‘df_reporters’ list.
By default, only the ‘LocalReporter’ and ‘ConsoleReporter’ are included in the list. To use the remote reporter, for example, you will need to add it by configuring the ‘df_reporters’ as following:
You can also implement your own reporter and add it to the list.
Contributions are very welcome. Tests can be run with tox, please ensure
the coverage at least stays the same before you submit a pull request.
Distributed under the terms of the Apache Software License 2.0 license, “pytest-difido” is free and open source software
If you encounter any problems, please file an issue along with a detailed description.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Hashes for pytest_difido-0.5.1-py3-none-any.whl