gradle - 在Gradle中为TestNG设置VM选项

标签 gradle testng build.gradle jvm-arguments

我需要将VM选项参数传递给gradle。到目前为止,我已经在IntelliJ中对其进行了配置,如下图所示,它可以正常工作,但是当我通过gradle命令运行测试时,它不起作用。
enter image description here

我需要在代码中的某处传递-javaagent:"C:\aspectjweaver-1.9.5.jar"。我尝试了jvmArgsgradle.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}"
    }

}

关于gradle - 在Gradle中为TestNG设置VM选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59753690/

相关文章:

android-studio - 创建新项目时无法解析Symbol R

java - Lombok 问题 - 找不到 org.projectlombok

java - Gradle 提示它无法将 long 转换为 int,即使该方法需要 long 作为参数

java - 测试NG XML : Groups still being executed although failure occurred in the dependent group

java - TestNG 依赖于不同类的方法

java - 无法排除 jar 内的依赖项

android - 任务 ':app:dexDebug' 执行失败。不确定可能是 httpclient 和 httpmime 之间的依赖性问题

java - Log4j 不会将所有日志保存到文件中

android-studio - Pulltorefresh 添加到 gradle

maven - 在 Maven 构建工具和 TestNG 测试框架上自动化 Selenium 脚本