我有gradle.properties文件,该文件要从命令行通过以下命令传递值,但不接受该值。
等级测试-DsystemProp.RunnerApplication = QAEnv -Dgroups = CSP烟雾
我的build.gradle文件代码如下-
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.kaleyra'
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.kaleyra.smsApi.qa.framework.listener.CustomListener'
//options.listeners << 'com.kaleyra.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是保存在我的gradle.properties中的键和值。 在这里,我想以RunnerApplication = QAEnv的身份运行,以便自动化可以在不同的环境中运行
但是,即使在命令行中通过QAEnv,它也始终在开发人员上运行。
非常感谢您的帮助。
答案 0 :(得分:0)
您要传递两个系统属性。一个以systemProp.
为前缀,另一个则没有。这应该向您表明其中之一是错误的。这是前一个:)
systemProp.
前缀有一个用途,但仅当通过gradle.properties
文件声明系统属性时才使用。在这里,您是从命令行中声明它们的。
所以代替:
gradle test -DsystemProp.RunnerApplication=QAEnv -Dgroups=CSP-Smoke
运行:
gradle test -DRunnerApplication=QAEnv -Dgroups=CSP-Smoke