gradle - 在 Gradle 中为 TestNG 设置 VM 选项
问题描述
我需要将 VM 选项参数传递给 gradle。到目前为止,我在 IntelliJ 中配置它,如下面的屏幕所示,它工作正常,但是当我通过 gradle 命令运行测试时,它不起作用。
我需要-javaagent:"C:\aspectjweaver-1.9.5.jar"
在代码中的某个地方传递。我试过jvmArgs
但gradle.properties
没有成功。有什么办法让它工作吗?
我的build.gradle
文件:
plugins {
id 'java'
id 'maven'
}
sourceCompatibility = 1.12
targetCompatibility = 1.12
repositories {
maven { url "http://repo.maven.apache.org/maven2" }
maven { url "https://dl.bintray.com/cbeust/maven/" }
maven { url "https://plugins.gradle.org/m2/" }
}
tasks.withType(Test) {
outputs.upToDateWhen { false }
environment 'driver_type', project.hasProperty('driver_type') ? project.driver_type : 'chrome'
environment 'env', project.hasProperty('env') ? project.env : 'dev'
useTestNG() {
if (project.getProperties().get("env") == "prod") {
suites 'src/test/resources/testSuites/testng_prod.xml'
} else if (project.getProperties().get("env") == "stg") {
suites 'src/test/resources/testSuites/testng_stg.xml'
} else if (project.getProperties().get("env") == "dev") {
suites 'src/test/resources/testSuites/testng_dev.xml'
}
}
testLogging {
events "PASSED", "SKIPPED", "FAILED"
showExceptions true
exceptionFormat = 'full'
}
}
dependencies {
compile group: 'org.aspectj', name: 'aspectjweaver', version: "$aspectjVersion"
compile group: 'org.aspectj', name: 'aspectjrt', version: "$aspectjVersion"
compile group: 'org.apache.poi', name: 'poi-ooxml', version: '3.15'
compile group: 'org.seleniumhq.selenium', name: 'selenium-api', version: "$seleniumVersion"
compile group: 'org.seleniumhq.selenium', name: 'selenium-server', version: "$seleniumVersion"
compile group: 'org.seleniumhq.selenium', name: 'selenium-java', version: "$seleniumVersion"
compile group: 'org.seleniumhq.selenium', name: 'selenium-support', version: "$seleniumVersion"
compile group: 'org.testng', name: 'testng', version: '6.14.3'
compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.8.0'
compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.8.0'
compile group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.8.0'
compile group: 'commons-io', name: 'commons-io', version: '2.5'
compile group: 'org.apache.commons', name: 'commons-csv', version: '1.4'
compile group: 'org.apache.poi', name: 'poi', version: '3.14'
compile group: 'org.apache.poi', name: 'poi-ooxml', version: '3.14'
compile group: 'com.opencsv', name: 'opencsv', version: '3.8'
compile group: 'org.assertj', name: 'assertj-core', version: '3.13.2'
compile group: 'com.mashape.unirest', name: 'unirest-java', version: '1.4.9'
compile group: 'com.google.code.gson', name: 'gson', version: '2.8.0'
compile group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1'
compile group: 'com.google.guava', name: 'guava', version: '28.1-jre'
compile group: 'log4j', name: 'log4j', version: '1.2.16'
compile group: 'com.aventstack', name: 'extentreports', version: '4.0.9'
compileOnly 'org.projectlombok:lombok:1.18.10'
annotationProcessor 'org.projectlombok:lombok:1.18.10'
}
解决方案
完成了这项doFirst
工作。我也添加${aspectPath}
到gradle.properties
tasks.withType(Test) {
useTestNG() {
...
}
doFirst {
jvmArgs "-javaagent:${aspectPath}"
}
}
推荐阅读
- python-3.x - Python IF 语句给出“无效语法”错误。请让我知道可能是什么原因
- r - R:对字符值进行分组,并按条件从向量中仅保留一个值
- oracle - 为什么接受 dbreport 响应 202,我需要 200
- asp.net - 如何在epplus的Excel中将图例位置设置为左上角
- react-navigation - 将堆栈设置为'headerMode:“none”'后如何在任何给定页面上显示标题?
- css - css 动画填充模式 foward 更改元素不透明度
- php - PHP FOPEN 函数中的数据未保存到 CSV。改为保存页面 HTML
- html - 我正在解析 html,我不想包含 header 元素的 header img 标签
- http-referer - Javascript 检测访问者来源/推荐人
- vb.net - 加密数据库详细信息时,exe文件在其他PC上不起作用VB2013