This topic explains how to integrate TestRail with Bitbucket. There are currently three ways to integrate TestRail with Bitbucket, namely:
Using defect URLs to link test results to Bitbucket
Using the defect plugin for Bitbucket to push and look up Bitbucket issues
Using reference URLs to link test cases to Bitbucket
- Using the reference plugin for Bitbucket to look up Bitbucket issues in the References field of TestRail entities such as test cases, test runs, and milestones
You don’t have to use all listed integration options and you can mix and match the integration with other tools. Configuring the integration usually only takes a few minutes and this guide explains how to configure the integration and how it works.
The defect URLs are used to let TestRail know how to convert a Defect ID into a URL for your Bitbucket instance. There are two types of URLs: View URLs and Add URLs.
The Defect View URL is used to build a link to Bitbucket based on the Defect ID, so you can simply click on an ID to open the issue directly in Bitbucket.
The Defect Add URL is used to create a link to the issue creation screen inside Bitbucket. Once the URL is configured, a new Add link appears next to the Defects field in the Add Test Result dialog and the ‘Defects’ menu in TestRail’s Push Defect From Anywhere feature. This link allows you to jump to Bitbucket’s New Issue form to report a new bug.
If you see the ‘Add’ link, you can copy the ID of your new Bitbucket issue and enter it into any Defects or References field inside TestRail.
To configure Bitbucket’s URLs in TestRail, select Administration > Integration. You can alternatively enter separate bug tracker URLs for each project under Administration > Projects. Use the following example URLs to configure the addresses:
Bitbucket installation Defect View Url: https://bitbucket.org/<owner>/<repository>/issue/%id% Defect Add Url: https://bitbucket.org/<owner>/<repository>/issues/new
Please make sure to replace <owner> and <repository> with the actual keys of the owner and repository in Bitbucket you want to integrate with.
The reference URLs are implemented in a very similar manner to Defect URLs described above. The primary difference is Reference URLs are used for the ‘References’ field on various TestRail entities (instead of the Defects field).
The Reference View URL is configured in the same manner as described above and allows TestRail to create a direct link to a Bitbucket based on an ID entered into a References field.
The Reference Add URL is also configured in the same way as the Defect Add URL. Once configured, an ‘Add’ link will appear next to each References field in your instance or project. If you use the ‘Add’ link, you can copy the ID of your new Bitbucket issue and enter it into any Defects or References field inside TestRail.
If you have the Reference plugin configured, you’ll also be able to hover over a Reference ID to view the issue details directly from within TestRail. Keep reading to learn how to use and configure the Defect and Reference Plugins.
Once the test result is added, hovering the mouse cursor over an issue ID will open a window with useful information and status details about the issue in Bitbucket.
The Bitbucket defect plugin was built to work with a standard Bitbucket configuration. TestRail allows you to customize the fields which appear in the Push dialog as well as when hovering over Defect IDs. Preconfigured push fields and hover fields can be set to ‘on’ or ‘off’ in their respective [push.fields] and [hover.fields] sections, or change the order in which they appear by the fields in each section.
Please keep in mind some fields (such as the title field) are always enabled and may not appear in these sections due to always beings required by either TestRail or Bitbucket.
The Bitbucket Defect Plugin also supports modifying field properties.
In addition to enabling, disabling, or re-organizing fields as described above, it’s also possible to change additional options per field. To do this, you would define a section for the field, such as [push.field.description] and specify additional options within this section.
[push.field.description] label=Detailed Description required=true
Please see below for a full list and explanation of the available field options:
|label||Specifies the display name of the field in the Push Defect dialogue|
|remember||Specifies if previously selected values for this field should be remembered and restored the next time the Push Defect dialogue is opened|
|required||Specifies if this field is mandatory or optional and whether users are required to enter a value for this field in the Push Defect dialogue|
|size||Specifies whether the field is displayed as a compact field (compact) or uses the full width of the dialogue (full)|
The Bitbucket Defect Plugin supports submitting attachments to Bitbucket as well. This field can be turned on and off, but cannot be customized. To submit one or more attachments to Bitbucket, simply drag the attachment to the attachments or description areas of the push dialog or click on the area to choose an attachment from your file system.
Bitbucket Reference Plugin
Reference plugins can be used to retrieve additional information from IDs entered into the References field of TestRail entities, such as test cases, test runs, and milestones. The Reference Plugin is configured on the References tab of the integration settings in the same manner the Defect Plugin is configured.
The plugin supports hovering over Reference IDs but does not support a Push dialog for the References field. It is also possible to customize the fields which appear via link hovering, as described above.
If you have the Defect Plugin already configured for Bitbucket, you can simply copy your [connection] and [hover.fields] sections from the Defect Plugin into the Reference plugin configuration. Alternatively, you can choose different fields to be displayed for References and Defects.
TestRail also supports custom defect plugins. If your team uses TestRail Server, it is possible to further customize the defect plugin (or build your own) to support additional field types or other data. Please see out documentation here for additional information.