Issue Tracking
The HILSTER Testing Framework seamlessly integrates issue tracking systems.
JIRA (Atlassian)
The integration of JIRA issues can easily be realized using the jira fixture.
In JIRA the option 'Allow Remote API Calls' must be enabled.
The jira fixture searches JIRA using the rest api to find issues for the current test.
Found issues are appended to the test and put into the test report.
This way you do not need to put your issues into the source code of your tests.
By default issues must include testcase.test in the summary or the description, eg. MyTestCase.test_foo.
This behaviour can be changed by changing the query_template accordingly.
To use the jira fixture you need to create your own fixture depending on it to provide
the necessary JIRA URL and authentication credentials. The fixture should have the scope “session” and have the auto
parameter set to True.
By default the jira fixture creates links that include the type, id and status of the
referenced issue, e.g. Bug TRANS-1266 (Resolved): Dutch language does not reflect on keyboard shortcut dialog box.
The default template for link_template is "{fields/issuetype/name} {key} ({fields/status/name}): {fields/summary}".
The '/' in the template describe the hierarchy in the api result.
The api result is flattened and is used to format the template using the string.format method.
To be able to see all possible keys you should enable debugging to have a look at the flattend dictionary.
For oauth and kerberos authentication have a look at the
python-jira documentation.
Example:
import htf
@htf.fixture('session', auto=True)
def setup_jira(jira):
jira.setup_jira_connector(
url="https://jira.atlassian.com",
project="11460"
)
def test_foo():
pass
To enable debugging use the following code snippet.
import logging
logging.basicConfig()
logger = logging.getLogger("htf.jira")
logger.setLevel(level=logging.INFO) # to enable info
logger.setLevel(level=logging.DEBUG) # to enable info and debug
- class htf.fixtures.jira(environment: TestEnvironment)
- setup_jira_connector(url: str, project: str, username: str | None = None, password: str | None = None, auth: str | None = None, oauth_dict: Dict[Any, Any] | None = None, kerberos_options: Dict[Any, Any] | None = None, query_template: str | None = None, title_template: str | None = None) None
Set up the
jirafixture so that it will search your JIRA installation for issues for the current test.- Parameters:
url – the url to your JIRA installation
project – the JIRA project
username=None – the username to be used for authentication
password=None – the password to be used for authentication
auth=None –
possible values are:
None: no authentication is usedauth: cookie based authenticationbasic_auth: HTTP basic authenticationoauth: OAuth authentication is used (you have to supplyoauth_dict, too)kerberos: Kerberos authentication (you have to supplykerberos_options, too)
oauth_dict=None – options for
oauthauthenticationkerberos_options=None – options for
kerberosauthenticationquery_template="default" –
the template for the JIRA query string. supported replacements are -
{testcase}: is replaced with the TestCase’s class name -{test}: is replaced with the current test name -{project}: is replaced with the supplied projectdefault: “project={project} and (summary~”{testcase}.{test}” or description~”{testcase}.{test}”)”
title_template="default" – The template for the resulting title of the link in the test report. The issue is flattened using
'/'as the separator. So the template may include keys like{fields/status/name}to show the name of the current ticket status, etc.