Starting with version 2.0.0, the JMCF add-on comes with a Groovy script editor and tester in the configuration screens of the calculated custom field. This document details the Groovy script tester, its availability and features.

The Groovy script tester tool lets you test your written script against any issue. The main advantage of this tool is that you can quickly test and debug your script and make changes without having to actually save the custom field and recalculate the calculated field value.



On this page:



Groovy script tester availability

The Groovy script tester in JMCF is available on the Custom field configuration screen when you write a Groovy script to return a value expected by the calculated custom field in the Groovy Formula for the calculated custom field in the Format Expression field

Using the Groovy Script tester

After writing your Groovy script in the editor, click on the Test Groovy Script button on the toolbar. A modal dialog window opens, asking you to pick an issue to run the Groovy script against, as well as a linked issue, where applicable. 

Selecting an issue

You can select the issue from one of the following options:

The issue variable used in your script will point to the above-selected issue. 


Testing your Groovy script

After selecting issue against which the script should be tested (as explained above), click on Test. The following information will be displayed. This information can be used for debugging.

  1. Message: Success/error message based on the test result.

  2. Result type: Data type of the result.
  3. Result value: Value of the result.
  4. Stack: If an exception was thrown during the execution of the script, a stack trace will be displayed.
  5. Logs: Information logged using the log variable.

Example

Test a script that fetches the username of the user the issue is assigned to:

  1. Add the Set field value post-function to a transition.
  2. Select Groovy expression as the Value type.
  3. In the Groovy editor, write the following lines of code:

    log.warn(issue.get("assignee").getName())
    return (issue.get("assignee").getName())


  4. Click on the Test Groovy Script button on the toolbar.
  5. Type an Issue key. The issue you pick must have a valid Assignee.
  6. Click on Test
  7. The following result is displayed:
  8. For the same script, select an issue which is unassigned and test the result (Repeat steps 4,5 and 6). Since the issue is unassigned, a null pointer exception occurs.

Debugging your script

If you encounter an error during testing, you will need to debug your script. The Message, Stack and Log information displayed in the script tester result panel aids in debugging the script.

Using the Message and Stack trace

In the above example, after testing the script against an issue that is unassigned:

Using the log variable

Using the log variable, you can debug your script, a step further, by adding information into the log. For example, while testing a condition, if the result evaluates to false when you expect it to be true, you might want to know what values are being compared in your condition. In such cases, you can use the log variable to display the value.

The log calls should always be used before the return statement because they would never get executed after it.

Consider the following script,

return (issue.get("assignee")? == "Scharlie")

The script is comparing a user object to a String value.