Skip to content

haroon-sheikh/gauge-gradle-plugin

 
 

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.

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.

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 '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'
}

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: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/"]
}

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

Gauge is released under the Apache License, Version 2.0. See LICENSE for the full license text.

About

Gradle plugin for Gauge.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 95.6%
  • Ruby 3.3%
  • Shell 1.1%