【问题标题】:Set VM option for TestNG in Gradle在 Gradle 中为 TestNG 设置 VM 选项
【发布时间】:2020-01-15 14:40:44
【问题描述】:

我需要将 VM 选项参数传递给 gradle。到目前为止,我在 IntelliJ 中配置了它,如下面的屏幕所示,它工作正常,但是当我通过 gradle 命令运行测试时,它不起作用。

我需要在代码中的某处传递-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'
}

【问题讨论】:

    标签: gradle testng build.gradle jvm-arguments


    【解决方案1】:

    doFirst 完成了这项工作。我还添加了${aspectPath}gradle.properties

    tasks.withType(Test) {
        useTestNG() {
            ...
        }
        doFirst {
            jvmArgs "-javaagent:${aspectPath}"
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-28
      • 2021-11-23
      • 1970-01-01
      • 1970-01-01
      • 2015-05-05
      相关资源
      最近更新 更多