How to integrate the groovy test runner with Bamboo or any CI server?

eugen_nekhai June 29, 2016

Is it possible somehow to run groovy tests using Bamboo or any CI server? At this moment I should go to JIRA and manually run Unit test runner. This is quite uncomfortable.

2 answers

1 accepted

2 votes
Answer accepted
adammarkham
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 29, 2016

I'm going to briefly outline the process of what we do to run tests in Bamboo through ScriptRunner.

We run tests from Bamboo using a Gradle task by executing the unit test built-in script remotely using a REST call. One advantage of using Gradle is you can write your own code to do this.

You need to do a POST call to the following endpoint: 

<jira-base-url>/rest/scriptrunner/latest/canned/com.onresolve.scriptrunner.canned.common.admin.RunUnitTests

The payload should be JSON and look like the following:

{
	"scriptParams": {
		"content": {
            // What packages to scan for
			"FIELD_SCAN_PACKAGES": "com.some.test.package",
            // What tests/packages to run
			"FIELD_TEST": ["com.some.test.package"]
		}
	}
}

The challenge is running JIRA as part of your build. If you have a way of firing it up then great, if not we use the Cargo plugin as our web container and deploy the JIRA webapp there. You will need to wait till its started up before running the tests, we do this by polling the REST endpoint above until we get a 200 status code back to indicate the tests are running.

After that we use the JUnit Parser in Bamboo to record the test results. The test results can be found under a folder called:

<catalina.out>/surefire-reports 

catalina.out is a system property. You can get it by running the following in the script console:

System.getProperty("catalina.home")

I've probably missed some things, but thats an overview of how to get it running. Its not a trivial thing to do but this should give you some idea of how to approach the problem.

0 votes
eugen_nekhai June 29, 2016

@Adam Markham [Adaptavist] thank you!  I had the same idea, but was hoping that there is exist a more easy approach.

Suggest an answer

Log in or Sign up to answer