Parse JUnitXML and upload test results to qTest Manager.
Install
zigzag
from PyPI with pip:$ pip install rpc-zigzag
For more information on using the Zigzag launch help by:
$ zigzag --help
Configuring Zigzag:
The zigzag config file is defined by the json schema at: zigzag/data/schema/zigzag-config.schema.json which is generated using a jinja2 template. (See [zigzag/data/configs/zigzag-config-example.json](https://github.com/rcbops/zigzag/tree/master/zigzag/data/configs/zigzag-config-example.json) for an example) Any test suite property from the incoming junit.xml can be interpolated, by name, into the template. (See the example.) The config file must be specified at execution time. Because the template is rendered using jinja2, arbitrary python code can be used to inform the values. You could have a module hierarchy with one of the nodes set to the datetime of the zigzag execution, for instance. - project_id: (Required) The qtest project id to reference when uploading test results. - test_cycle: (Required) A string name of the root node of the hierarchy for storing test results in qtest. - module_hierarchy: (Required) A list, of length => 0, of hierarchical nodes where test results will be stored in qtest. This config option has access to the strftime module. A special variable is made avalable to this option 'zz_testcase_class', it will interpolate to the value of the fully qualified class name for a given test. An example of these being used can be found in `molecule-config-example.json`_ - path_to_test_exec_dir: A string representing an arbitrary path between the root of the project being tested and the directory where tests will be executed. This is used in failure link generation. - build_url: The URL of the build that generated the XML to be processed - build_number: The build number from the CI system The following configs are project specific, these values should be accurate for the version of the project under test. - project_repo_name: The name of the repo of the project under test - project_branch: The branch of the project under test - project_fork: The fork of the project under test - project_commit: The commit sha of the project under test The following configs are test specific, these values should be accurate for the version of the tests that generated the XML. If your tests are located in the same repo as your project these values will be the same as above. - test_repo_name: The name of the repo that containing the tests used to generate the XML - test_branch: The branch of the repository that contains the tests used to generate the XML - test_fork: The fork of the repository that contains the tests used to generate the XML - test_commit: The commit sha of the the repository that contains the tests used to generate the XML
Here is an example of uploading a results JUnitXML file from Molecule:
$ export QTEST_API_TOKEN="SECRET" $ zigzag /path/to/config.json /path/to/junit.xml
Checkout QA Symphony's website for more details on configuring qTest Manager API access.
See CONTRIBUTING.rst and developer_docs.rst for more details on developing for the Zigzag project.
See release_process.rst for information on the release process for 'zigzag'
This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.