Gradle - Running Tests using Sealights plugin

When executing Tests via Gradle against a build already reported to Sealights, you have to provide the buildSessionId generated in a previous step via an environment variable or a text file.

Please make sure the Sealights Test Listener is deployed to capture coverage of the application to be tested by this script.

For Java application, you can refer to https://sealights.atlassian.net/wiki/spaces/SUP/pages/3473596

In order to use Sealights Gradle plugin, you’ll need to update your build.gradle file with relevant settings and enable its execution during the relevant Gradle projects.
For example, by adding the -Psealights property to your Gradle command.

Configuring Gradle plugin in build.gradle

In the ‘repositories > dependencies’ section add:

  1. classpath 'io.sealights.on-premise.agents.plugin:sealights-gradle-plugin:latest.release'

 

In the ‘allprojects’ section add the following:

  1. apply plugin: 'io.sealights.on-premise.agents.plugin.sealights-gradle-plugin'

  2. sealights section with the following parameters

    1. token or tokenFile - set with a token or a file containing the token obtained from the SeaLights Settings page

    2. buildSessionId or buildSessionIdFile - Set with a build session id or a file containing the build session id created externally via the config step unless you are using the labId to recieve the session ID

    3. labId - Set the lab ID of the environment being tested (if not provided, it will be set to the session ID)

    4. createBuildSessionId - Set to false

    5. runTestOnly - Set to true if you want to only run tests without scanning builds


The following optional parameters:

  1. logEnabled - Set to true if you want a log to be created

  2. logLevel - Set the log level to create. For example WARN or INFO

  3. logToFile - Set to true if you want the log to written to a file

  4. logToConsole - Set to true if you want the log to written to the console

  5. filesStorage - location of temporary folder location to store cached agent files

  6. proxy - Provide the URL to the proxy to route the calls through if needed

  7. testListenerJvmParams - Containing and array of all the parameters you want to pass to all the SeaLights test execution step, Note: the key and values must always be strings

  8. testTasksAndStages - A map of tasks and their test stage names to integrate SeaLights into the jvmargs in. Default are test, unitPlatformTest with test stage "Unit Tests" and integrationTest with test stage "Integration Tests"

In the following example, the steps needed are surrounded by an if condition which allows you to only use Sealights when you pass the -Psealights property when executing your gradle command.

Without this condition and property, Sealights integration will always be applied and used.

For additional parameters values and informaiton, please refer to Java Command Reference - Installing test listener as Java Agent

buildscript { repositories { mavenCentral() dependencies { if(project.hasProperty('sealights')){ classpath 'io.sealights.on-premise.agents.plugin:sealights-gradle-plugin:latest.release' } } } } allprojects { p -> if(project.hasProperty('sealights')){ apply plugin: 'io.sealights.on-premise.agents.plugin.sealights-gradle-plugin' sealights { tokenFile = "./sltoken.txt" createBuildSessionId = false buildSessionIdFile = "./buildSessionId.txt" // buildSessionId = System.getenv('SL_BUILD_SESSION_ID') // labId = "myLabId" filesStorage="/tmp" logEnabled = false logLevel = "WARN" logToFile = false logToConsole = true runTestOnly=true testTasksAndStages=["test":"Functional Tests"] // proxy = "http://localhost:8888" // testListenerJvmParams=["sl.param1":"true","sl.param2":"value"] } } }
buildscript { repositories { mavenCentral() dependencies { if(project.hasProperty('sealights')){ classpath 'io.sealights.on-premise.agents.plugin:sealights-gradle-plugin:latest.release' } } } } allprojects { p -> if(project.hasProperty('sealights')){ apply plugin: 'io.sealights.on-premise.agents.plugin.sealights-gradle-plugin' sealights { tokenFile = "./sltoken.txt" createBuildSessionId = false buildSessionIdFile = "./buildSessionId.txt" // buildSessionId = System.getenv('SL_BUILD_SESSION_ID') // labId = "myLabId" filesStorage="/tmp" logEnabled = false logLevel = "WARN" logToFile = false logToConsole = true runTestOnly=true testTasksAndStages=["test":"Functional Tests"] // proxy = "http://localhost:8888" // testListenerJvmParams=["sl.param1":"true","sl.param2":"value"] } } }