Skip to main content

Formatter for pytest collect output

Project description

pytest-collect-formatter

Pytest plugin for formatting output of the collected tests.

  • Free software: MIT license

Requirements

  • pyyaml
  • dicttoxml

Installation

You can install “pytest-collect-formatter” via pip:

$ pip install pytest-collect-formatter

Usage

  • Use this plugin by running pytest normally and use the following options to customize collection format, it’s better to use with –collect-only option
>>> collect-formatter:
  --collect-output-file=COLLECT_OUTPUT_FILE
                        Saves collected test items to the file
  --collect-format=COLLECT_FORMAT
                        Saves collected test items specified format [xml, yaml, json]
  --collect-type=COLLECT_TYPE
                        Format output results in classic pytest view or in 'path' view [classic, path], default classic

Example of usage

$ pytest tests –collect-output-file my_tests_structure.xml –collect-format xml

And you will get the my_tests_structure.xml

Exmpales of formats

PATH

JSON

[
    {
        "type": "path",
        "title": "examples",
        "children": [
            {
                "type": "path",
                "title": "tests",
                "children": [
                    {
                        "type": "path",
                        "title": "test_formatter",
                        "children": [
                            {
                                "type": "path",
                                "title": "test_fromatter_v1.py",
                                "children": [
                                    {
                                        "type": "pytest_unit",
                                        "title": "TestFormatter",
                                        "children": [
                                            {
                                                "type": "pytest_unit",
                                                "title": "test_inside_class",
                                                "children": []
                                            },
                                            {
...

YAML

 - children:
   - children:
     - children:
       - children:
         - children:
           - children: []
             title: test_inside_class
             type: pytest_unit
           - children: []
             title: test_inside_class_parametrize[1]
             type: pytest_unit
           - children: []
             title: test_inside_class_parametrize[2]
             type: pytest_unit
           - children: []
             title: test_inside_class_parametrize[3]
...

XML

<?xml version="1.0" ?>
<root>
    <item>
        <type>path</type>
        <title>examples</title>
        <children>
            <item>
                <type>path</type>
                <title>tests</title>
                <children>
                    <item>
                        <type>path</type>
                        <title>test_formatter</title>
                        <children>
                            <item>
                                <type>path</type>
                                <title>test_fromatter_v1.py</title>
                                <children>
                                    <item>
                                        <type>pytest_unit</type>
                                        <title>TestFormatter</title>
                                        <children>
                                            <item>
                                                <type>pytest_unit</type>
                                                <title>test_inside_class</title>
                                                <children/>
                                            </item>
...

CLASSIC

JSON

[
 {
     "type": "Package",
     "value": "test_formatter",
     "children": [
         {
             "type": "Module",
             "value": "test_fromatter_v1.py",
             "children": [
                 {
                     "type": "Class",
                     "value": "TestFormatter",
                     "children": [
                         {
                             "type": "Function",
                             "value": "test_inside_class"
                         }
 ....

YAML

- children:
  - children:
    - children:
      - type: Function
        value: test_inside_class
      - type: Function
        value: test_inside_class_parametrize[1]
      - type: Function
        value: test_inside_class_parametrize[2]
      - type: Function
        value: test_inside_class_parametrize[3]
      - type: Function
        value: test_inside_class_parametrize[4]
      type: Class
      value: TestFormatter
    - type: Function
      value: test_outside_of_class
    type: Module
    value: test_fromatter_v1.py
  type: Package
  value: test_formatter
....

XML

<?xml version="1.0" ?>
<root>
    <item>
        <type>Package</type>
        <value>test_formatter</value>
        <children>
            <item>
                <type>Module</type>
                <value>test_fromatter_v1.py</value>
                <children>
                    <item>
                        <type>Class</type>
                        <value>TestFormatter</value>
                        <children>
                            <item>
                                <type>Function</type>
                                <value>test_inside_class</value>
                            </item>
                            <item>
                                <type>Function</type>
                                <value>test_inside_class_parametrize[1]</value>
                            </item>
                            <item>
                                <type>Function</type>
                                <value>test_inside_class_parametrize[2]</value>
                            </item>
                            <item>
                                <type>Function</type>
                                <value>test_inside_class_parametrize[3]</value>
                            </item>
                            <item>
                                <type>Function</type>
                                <value>test_inside_class_parametrize[4]</value>
                            </item>
                        </children>
                    </item>
                    <item>
                        <type>Function</type>
                        <value>test_outside_of_class</value>
                    </item>
                </children>
            </item>
        </children>
....

More examples could be found in examples folder as well as tests structure

Issues

If you encounter any problems, please file an issue along with a detailed description.

Credits

Credits

Development Lead

Contributors

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for pytest-collect-formatter, version 0.4.0
Filename, size File type Python version Upload date Hashes
Filename, size pytest_collect_formatter-0.4.0-py2.py3-none-any.whl (5.8 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size pytest-collect-formatter-0.4.0.tar.gz (6.8 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page