I have gradle.properties file for which I am passing value from command line as below command but not taking the value.
gradle test -DsystemProp.RunnerApplication=QAEnv -Dgroups=CSP-Smoke
My build.gradle file code as follows-
import java.util.concurrent.TimeUnit
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath "io.spring.gradle:dependency-management-plugin:1.0.3.RELEASE"
classpath group: 'org.testng', name: 'testng', version: '6.8.+'
}
}
plugins {
id 'java'
}
apply plugin: 'java'
group 'org.csp.xxxx'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
test {
systemProperty "RunnerApplication",System.getProperty("RunnerApplication")
reports {
junitXml.enabled = true
html.enabled = true
reports.junitXml.destination = file("test-output/reports/")
}
def Coregroups = System.getProperty('groups','Core-Smoke \n CSP-Smoke')
useTestNG()
{
includeGroups Coregroups
useDefaultListeners = true
options.suites("src/test/java/TestAPISuite.xml")
//options.listeners << 'com.ddddd.smsApi.qa.framework.listener.CustomListener'
//options.listeners << 'com.dddd.smsApi.qa.framework.listener.EmailListener'
options.listeners << 'org.uncommons.reportng.HTMLReporter'
options.listeners << 'org.uncommons.reportng.JUnitXMLReporter'
systemProperty 'org.uncommons.reportng.title', 'csp_api_automation_results'
}
testLogging.events "passed", "skipped", "failed"
testLogging.exceptionFormat = "full"
//Interceptors
beforeTest { desc ->
println "\n*** Starting execution of test ${desc.className}.${desc.name} ***"
}
afterTest { descriptor, result ->
println "<<< Test ${descriptor.name} resulted in ${result.resultType} and took "+getElaspedTime(result.endTime - result.startTime)+" >>>\n"
}
//Modify the test logging
testLogging {
showStandardStreams = true
exceptionFormat "full"
}
}
sourceSets {
main {
runtimeClasspath = files(output.resourcesDir) + runtimeClasspath
}
test {
runtimeClasspath = files(output.resourcesDir) + runtimeClasspath
}
}
dependencies {
compile group: 'io.rest-assured', name: 'rest-assured', version: '3.0.2'
testCompile group: 'org.testng', name: 'testng', version: '6.8.+'
//An assertion library that is better than JUnit defaults
testCompile 'org.easytesting:fest-assert-core:2.0M10'
//Better reporting for testng. It outputs a nice html report
testCompile 'org.uncommons:reportng:1.1.4'
compile group: 'org.apache.poi', name: 'poi-ooxml', version: '3.15'
compile group: 'net.sourceforge.jexcelapi', name: 'jxl', version: '2.6.12'
compile group: 'commons-lang', name: 'commons-lang', version: '2.6'
compile group: 'com.googlecode.htmlcompressor', name: 'htmlcompressor', version: '1.5.2'
compile group: 'commons-dbutils', name: 'commons-dbutils', version: '1.6'
compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.8.6'
compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.8.6'
compile group: 'mysql', name: 'mysql-connector-java', version: '6.0.5'
compile group: "com.github.fge", name: "json-schema-validator", version: "2.2.6"
compile group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1.1'
compile group: 'org.json', name: 'json', version: '20160810'
compile group: 'org.uncommons', name: 'reportng', version: '1.1.4'
compile group: 'com.google.code.guice-repository', name: 'guice-repository', version: '2.1.0'
compile group: 'org.easytesting', name: 'fest-assert-core', version: '2.0M10'
compile group: 'org.uncommons', name: 'reportng', version: '1.1.4'
compile group: 'org.apache.commons', name: 'commons-csv', version: '1.5'
compile group: 'org.apache.commons', name: 'commons-exec', version: '1.3'
compile group: 'com.opencsv', name: 'opencsv', version: '4.1'
compile group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.0'
compile group: 'org.slf4j', name: 'slf4j-simple', version: '1.6.1'
compile group: 'com.sun.mail', name: 'javax.mail', version: '1.6.0'
compile group: 'javax.mail', name: 'javax.mail-api', version: '1.6.2'
compileClasspath group: 'org.testng', name: 'testng', version: '6.8.+'
// https://mvnrepository.com/artifact/com.cedarsoftware/json-io
compile group: 'com.cedarsoftware', name: 'json-io', version: '2.6.0'
// https://mvnrepository.com/artifact/org.apache.poi/poi
compile group: 'org.apache.poi', name: 'poi', version: '3.17'
// https://mvnrepository.com/artifact/com.aventstack/extentreports
compile group: 'com.aventstack', name: 'extentreports', version: '4.0.9'
}
def getElaspedTime(def time) {
if(time / 1000 < 1)
{
return String.format("0 min, %.3f sec", time/1000)
}
else
{
return String.format("%d min, %d sec",
TimeUnit.MILLISECONDS.toMinutes(time),
TimeUnit.MILLISECONDS.toSeconds(time) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(time))
)
}
}
systemProp.RunnerApplication=dev is the key and value saved in my gradle.properties. Here I want to run as RunnerApplication=QAEnv so automation can run in different environments
But its is always running on dev even Passing QAEnv in command line.
I would really appreciate your help.
You are passing in two system properties. One is prefixed with
systemProp.
and the other isn't. This should indicate to you that one of them is wrong. And it's the former :)There is a use for the
systemProp.
prefix, but only when declaring system properties through thegradle.properties
file. Here, you are declaring them from the command line.So instead of:
gradle test -DsystemProp.RunnerApplication=QAEnv -Dgroups=CSP-Smoke
Run:
gradle test -DRunnerApplication=QAEnv -Dgroups=CSP-Smoke