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.

Source Distribution

pytest-collect-formatter-0.3.0.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

pytest_collect_formatter-0.3.0-py2.py3-none-any.whl (5.7 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file pytest-collect-formatter-0.3.0.tar.gz.

File metadata

  • Download URL: pytest-collect-formatter-0.3.0.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.52.0 CPython/3.9.0

File hashes

Hashes for pytest-collect-formatter-0.3.0.tar.gz
Algorithm Hash digest
SHA256 88338b4ff8ce8feff91eb9e18669f317d84f0be4b42074187fcb15c9e16151af
MD5 a4469cd6f5c3f01cd7fe5050cfe8e162
BLAKE2b-256 db1bae76a143bc12362e516ba6b47840f1dd12999f132b3984e90112ee3a5767

See more details on using hashes here.

File details

Details for the file pytest_collect_formatter-0.3.0-py2.py3-none-any.whl.

File metadata

  • Download URL: pytest_collect_formatter-0.3.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 5.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.52.0 CPython/3.9.0

File hashes

Hashes for pytest_collect_formatter-0.3.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c40f05743db91ceec67021e09a0d10a8baf6641e710465fef5d8edcad41fe463
MD5 ab05d8e0519cf537b24099ac57a31c9a
BLAKE2b-256 02bb8fe9609b30ff1d3372ab0f5fbdf5117018c5d90ebdacd6ea2c0bb72c888a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page