{"id":46410254,"url":"https://github.com/tracetronic/testguide_report-generator","last_synced_at":"2026-03-05T13:13:31.210Z","repository":{"id":209834978,"uuid":"724071440","full_name":"tracetronic/testguide_report-generator","owner":"tracetronic","description":"A generator that acts as a helper to create a test.guide compatible test report","archived":false,"fork":false,"pushed_at":"2026-03-02T15:50:56.000Z","size":778,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-03-02T18:47:32.183Z","etag":null,"topics":["json","python","reporting","testguide","testing","tracetronic"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tracetronic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-11-27T10:40:01.000Z","updated_at":"2026-03-02T15:50:51.000Z","dependencies_parsed_at":"2023-11-29T12:26:04.969Z","dependency_job_id":"e5e60520-d1f5-4d83-a9d9-3b30c6b476e0","html_url":"https://github.com/tracetronic/testguide_report-generator","commit_stats":null,"previous_names":["tracetronic/testguide_report-generator"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/tracetronic/testguide_report-generator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tracetronic%2Ftestguide_report-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tracetronic%2Ftestguide_report-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tracetronic%2Ftestguide_report-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tracetronic%2Ftestguide_report-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tracetronic","download_url":"https://codeload.github.com/tracetronic/testguide_report-generator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tracetronic%2Ftestguide_report-generator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30127439,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T12:40:50.676Z","status":"ssl_error","status_checked_at":"2026-03-05T12:39:32.209Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["json","python","reporting","testguide","testing","tracetronic"],"created_at":"2026-03-05T13:13:30.548Z","updated_at":"2026-03-05T13:13:31.197Z","avatar_url":"https://github.com/tracetronic.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--\nCopyright (c) 2022-2024 tracetronic GmbH\n\nSPDX-License-Identifier: MIT\n--\u003e\n\n# test.guide Report Generator\n\n\n[![Test](https://github.com/tracetronic/testguide_report-generator/actions/workflows/test.yml/badge.svg)](https://github.com/tracetronic/testguide_report-generator/actions/workflows/test.yml) [![Releases](https://img.shields.io/badge/Releases-Changelog-blue)](https://github.com/tracetronic/testguide_report-generator/releases) [![License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat)](https://github.com/tracetronic/testguide_report-generator/blob/main/LICENSE) \n\nAs a modern automotive test engineer, reliance on automated solutions for the execution, reporting and evaluation of my test suites is essential.\nThe complexity of the systems under test, and thus the amount of necessary tests is ever growing tremendously. One of the tools which can help\nwith these tasks is [tracetronic test.guide](https://www.tracetronic.com/products/test-guide/). As a user of test.guide, it is desirable to have\na means to customize and structure my test reports in a simple manner. \n\nThis generator acts as a helper to create a [test.guide](https://www.tracetronic.com/products/test-guide/) compatible \ntest report. Specific Python classes reflecting the different elements of a test report (*TestSuite*, *TestCase* and so on)\nwere designed in such a way that you can create your own testsuite from these objects. This facilitates the conversion from arbitrary test report \nformats into a *.json* which test.guide can handle. With this generator, it is no more necessary to convert non-ATX formats directly\ninto a *.json* for test.guide. Instead, the delivered Python classes are prefilled in a simple manner, and the *.json* is\ngenerated for you. On top of this, early format checks are conducted such that you will be notified right away if something is not\ncompliant to the *json* schema. The currently supported test.guide *json* schema can be found [here](./testguide_report_generator/schema/schema.json).\n\n\u003cimg src=\"https://github.com/tracetronic/testguide_report-generator/blob/main/docs/images/Logo_TEST-GUIDE_rgb_SCREEN.png?raw=true\" align=\"left\" alt=\"test.guide\" width=\"300\"\u003e\n\ntest.guide is a database application for the overview, analysis and follow-up processing of test procedures, which has been specially \ndeveloped for use in the automotive sector. It significantly facilitates the management of test resources. At the same time, it encourages \ncross-role cooperation, thereby closing the gap between test execution and test management.\n\u003cbr /\u003e\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Getting Started](#getting-started)\n- [Usage](#usage)\n- [Contribution](#contribution)\n- [Documentation](#documentation)\n- [Support](#support)\n- [License](#license)\n\n## Installation\n\nYou can directly install the project from GitHub using pip:\n```bash\n# HTTP\npip install git+https://github.com/tracetronic/testguide_report-generator/\n\n# SSH\npip install git+ssh://git@github.com:tracetronic/testguide_report-generator/\n```\nor by adding the _testguide-report-generator_ to your dependency management file, such as [requirements.txt](https://pip.pypa.io/en/stable/reference/requirements-file-format/) or [pyproject.toml](https://python-poetry.org/docs/pyproject/).\n\n## Getting Started\n\nThe commands which are necessary to generate [test.guide](https://www.tracetronic.com/products/test-guide/) reports are collected exemplarily in the [*example_TestSuite.py*](example_TestSuite.py). Run the example script to generate *json* and *zip* file:\n\n```bash\npython example_TestSuite.py\n```\n\n## Usage\n\n### Assembling a TestSuite Object\n\nThe elements follow the hierarchy `TestSuite --\u003e TestCaseFolder --\u003e TestCase --\u003e TestStepFolder --\u003e TestStep`. So, instances of *TestCase(Folder)* are added to *TestSuite*, and instances of *TestStep(Folder)* are added to *TestCase*. At least one *TestCase* or *TestStep* has to be added to the respective folder (see [Restrictions](#restrictions)).\n\nIn the end, the report generator will take the assembled *TestSuite* and generate the report. The generator output is a *.json* report and a *.zip* file containing the generated test report along with possible testcase artifacts. The *.zip* file can be uploaded to test.guide via the appropriate option in test.guide. The schema of the *.json* which [test.guide](https://www.tracetronic.com/products/test-guide/) expects can be found [here](testguide_report_generator/schema/schema.json).\n\nA small example may look like this:\n\n```\n# import necessary classes for the TestSuite creation and the .json generator \nfrom testguide_report_generator import TestSuite, TestCase, Verdict, Generator\n\n\ndef create_testsuite():\n\n    # create the TestSuite object\n    testsuite = TestSuite(\"All Tests\", 1666698047000)\n\n    # create the TestCase object\n    testcase = TestCase(\"Test Brakes\", 1666698047001, Verdict.FAILED)\n\n    # add the TestCase to the TestSuite\n    testsuite.add_testcase(testcase)\n\n    # initialize the generator\n    generator = Generator(testsuite)\n\n    # execute the generator and export the result\n    generator.export(\"output.json\")\n\nif __name__ == \"__main__\":\n    create_testsuite()\n\n```\nA more extensive example is given in [example_TestSuite.py](example_TestSuite.py).\n\n### Available classes and their purpose\n\n| Class                                                                | Arguments                                                                            | Description                                                                                                                          |\n|----------------------------------------------------------------------|--------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|\n| [TestStep](testguide_report_generator/model/TestCase.py)             | name of `type string`, verdict of `type Verdict`, (expected result of `type string`) | a fundamental teststep, is added to TestCase or TestStepFolder                                                                       |\n| [TestStepArtifact](testguide_report_generator/model/TestCase.py)     | filepath of `type string`, type of `type TestStepArtifactType`                       | artifact which gets attached directly to a teststep (such as plots)                                                                  |\n| [TestStepArtifactType](testguide_report_generator/model/TestCase.py) |                                                                                      | the type of a teststep artifact (only used with TestStepArtifact)                                                                    |\n| [TestStepFolder](testguide_report_generator/model/TestCase.py)       | name of `type string`                                                                | contains teststeps or teststep folders, is added to TestCase                                                                         |\n| [TestCase](testguide_report_generator/model/TestCase.py)             | name of `type string`, timestamp of `type int`, verdict of `type Verdict`            | a testcase, may contain teststeps or teststep folders, as well as further specific elements; is added to TestCaseFolder or TestSuite |\n| [TestCaseFolder](testguide_report_generator/model/TestCaseFolder.py) | name of `type string`                                                                | contains testcases or testcase folders, is added to TestSuite or TestCaseFolder                                                      |\n| [TestSuite](testguide_report_generator/model/TestSuite.py)           | name of `type string`, timestamp of `type int`                                       | the testsuite, may contain TestCases or TestCaseFolder                                                                               |\n| [Verdict](testguide_report_generator/model/TestCase.py)              |                                                                                      | the verdict of the test object                                                                                                       |\n| [Artifact](testguide_report_generator/model/TestCase.py)             | filepath of `type string`                                                            | an optional artifact to an existing filepath, can be added to TestCase                                                               |\n| [Parameter](testguide_report_generator/model/TestCase.py)            | name of `type string`, value of `type string or int`, direction of `type Direction`  | a testcase parameter, can be added to TestCase                                                                                       |\n| [Direction](testguide_report_generator/model/TestCase.py)            |                                                                                      | direction of a Parameter (only used with Parameter)                                                                                  |\n| [Constant](testguide_report_generator/model/TestCase.py)             | key of `type string`, value of `type string`                                         | a test constant, can be added to TestCase                                                                                            |\n| [Attribute](testguide_report_generator/model/TestCase.py)            | key of `type string`, value of `type string`                                         | a test attribute, can be added to TestCase                                                                                           |\n| [Review](testguide_report_generator/model/TestCase.py)               | comment of `type string`, author of `type string`, timestamp of `type int`           | a review may contain further specific elements; is added to TestCase                                                                 |\n\n* (): arguments in parentheses are _optional_\n\n### Restrictions\n\nPlease note that certain requirements for the creation of the test components need to be met in order to generate a valid *.json*. These include:\n\n* at least **one** [TestCase](testguide_report_generator/model/TestCase.py) or [TestCaseFolder](testguide_report_generator/model/TestCaseFolder.py) within a [TestSuite](testguide_report_generator/model/TestSuite.py)\n* at least **one** [TestCase](testguide_report_generator/model/TestCase.py) within a [TestCaseFolder](testguide_report_generator/model/TestCaseFolder.py)\n* at least **one** [TestStep](testguide_report_generator/model/TestCase.py) within a [TestStepFolder](testguide_report_generator/model/TestCase.py)\n* names for [TestSuite](testguide_report_generator/model/TestSuite.py), [TestCaseFolder](testguide_report_generator/model/TestCaseFolder.py), [TestCase](testguide_report_generator/model/TestCase.py), [TestStepFolder](testguide_report_generator/model/TestCase.py) and \n[TestStep](testguide_report_generator/model/TestCase.py) between **1 - 120** characters\n* [Review](testguide_report_generator/model/TestCase.py) comments between **10 - 10000** characters\n* timestamps in **milliseconds** (epoch Unix time) for [TestSuite](testguide_report_generator/model/TestSuite.py) and [TestCase](testguide_report_generator/model/TestCase.py)\n\nA complete specification can be found in the [schema](testguide_report_generator/schema/schema.json).\n\n## Contribution\n\nAt the moment, no external contributions are intended and merge requests from forks will automatically be **rejected**! However, \nwe do encourage you to file bugs and request features via the [issue tracker](https://github.com/tracetronic/testguide_report-generator/issues).\n\n## Documentation\n\nThe documentation of the project is formatted as [reStructuredText](https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html). You can generate documentation pages from this with the help of tools such as [Sphinx](https://www.sphinx-doc.org/en/master/index.html). All necessary files are located under `docs/source`. `sphinx-apidoc` is used to generate the referenced modules'.rst files. Use `sphinx-build` to generate the documentation in the desired format,\ne.g. HTML.\n\n## Support\n\nIf you have any questions, please contact us at [support@tracetronic.com](mailto:support@tracetronic.com) and mind our [support page](https://www.tracetronic.com/infohub/support/).\n\n## License\n\nThis plugin is licensed under MIT license. More information can be found inside the [LICENSE](LICENSE) file or within the \n[LICENSES](LICENSES) folder. Using the [REUSE helper tool](https://github.com/fsfe/reuse-tool), you can run reuse spdx to get a bill of materials.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftracetronic%2Ftestguide_report-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftracetronic%2Ftestguide_report-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftracetronic%2Ftestguide_report-generator/lists"}