Skip to content

Repository files navigation

Gradle Plugin Portal Build Contributor Covenant

Gauge Gradle Plugin

Use the gauge-gradle-plugin to execute specifications in your Gauge Java project and manage dependencies using Gradle.

Requirements

  • Gradle 7.x - 9.x
    • Gradle running with JDK LTS 17 - 25
  • Gauge 1.x
    • gauge-java plugin installed with matching version on project's Gradle classpath

Installation

On a new project

You can use this plugin on a new project via a Gauge project template:

gauge init java_gradle

Using the plugins DSL

If you have an existing project, and you would like to add the plugin manually you can add it like the below

plugins {
    id 'org.gauge' version '3.2.0'
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'com.thoughtworks.gauge:gauge-java:+'
}

// configure gauge task here (optional)
gauge {
    specsDir = 'specs'
    inParallel = true
    nodes = 2
    env = 'dev'
    tags = 'tag1'
    additionalFlags = '--verbose'
    gaugeRoot = '/opt/gauge'
}

Using legacy plugin 'apply' style

  • update the buildscript to add the Gradle plugins repo and classpath
  • apply plugin org.gauge
buildscript {
    repositories {
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        classpath "org.gauge.gradle:gauge-gradle-plugin:3.2.0"
    }
}

apply plugin: 'org.gauge'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'com.thoughtworks.gauge:gauge-java:+'
}

// configure gauge task here (optional)
gauge {
    specsDir = 'specs'
    inParallel = true
    nodes = 2
    env = 'dev'
    tags = 'tag1'
    additionalFlags = '--simple-console --verbose'
    gaugeRoot = '/opt/gauge'
    // additional environment variables to pass onto the gauge process
    environmentVariables = ["gauge_reports_dir": "custom/reports/", "logs_directory": "custom/logs/"]
}

Usage

Validating

gradle gaugeValidate 

Running

gradle gauge

Execute list of specs

gradle gauge -PspecsDir="specs/first.spec specs/second.spec"

Execute specs in parallel

gradle gauge -PinParallel=true -PspecsDir=specs

Execute specs by tags

gradle gauge -Ptags="!in-progress" -PspecsDir=specs

Specifying execution environment

gradle gauge -Penv="dev" -PspecsDir=specs

Note : Pass specsDir parameter as the last one.

All additional Properties

The following plugin properties can be additionally set:

Property name Usage Description
specsDir -PspecsDir=specs Gauge specs directory path. Required for executing specs
tags -Ptags="tag1 & tag2" Filter specs by specified tags expression
inParallel -PinParallel=true Execute specs in parallel
nodes -Pnodes=3 Number of parallel execution streams. Use with parallel
env -Penv=qa gauge env to run against
additionalFlags -PadditionalFlags="--verbose" Add additional gauge flags to execution separated by space
dir -Pdir="/path/to/gauge/project" Path to gauge project directory
gaugeRoot -PgaugeRoot="/opt/gauge" Path to gauge installation root

Adding/configuring custom Gauge tasks

It is possible to define new custom Gauge tasks specific for different environments. For example,

import org.gauge.gradle.GaugeTask

task gaugeDev(type: GaugeTask) {
    doFirst {
        gauge {
            specsDir = 'specs'
            inParallel = true
            nodes = 2
            env = 'dev'
            additionalFlags = '--simple-console --verbose'
        }
    }
}

task gaugeTest(type: GaugeTask) {
    doFirst {
        gauge {
            specsDir = 'specs'
            inParallel = true
            nodes = 4
            env = 'test'
            additionalFlags = '--simple-console --verbose'
        }
    }
}

Running gauge task with source code of gradle plugin

run the gauge command with -

gradle gauge --include-build {PATH_TO_GRADLE_PLUGIN}

or add this property in settings.gradle

includeBuild {PATH_TO_GRADLE_PLUGIN}

License

Released under the Apache License, Version 2.0. See LICENSE for the full license text.

About

Gradle plugin for Gauge.

Topics

Resources

Code of conduct

Contributing

Stars

12 stars

Watchers

10 watching

Forks

Releases

Packages

Used by

Contributors

Languages