Use the gauge-gradle-plugin to execute specifications in your Gauge Java project and manage dependencies using Gradle.
NOTE: Prior to v1.8.0 the
gauge-gradle-plugin
had a different community maintainer. Versions prior to this were published to Maven Central & Bintray; with out-of-date versions available on the Gradle Plugins Portal.From v1.8.0+ the Gradle Plugins Portal will be the primary means of release for this plugin; under the care of the core Gauge team.
You can use this plugin on a new project via a Gauge project template:
gauge init java_gradle
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 '2.1.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'
}
- 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:2.1.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/"]
}
gradle gaugeValidate
gradle gauge
gradle gauge -PspecsDir="specs/first.spec specs/second.spec"
gradle gauge -PinParallel=true -PspecsDir=specs
gradle gauge -Ptags="!in-progress" -PspecsDir=specs
gradle gauge -Penv="dev" -PspecsDir=specs
Note : Pass specsDir parameter as the last one.
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 |
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'
}
}
}
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}
Gauge is released under the Apache License, Version 2.0. See LICENSE for the full license text.