如何通过gradle systemProperties JUnit5测试?

Shay_t:

我正在使用gradle 3.5Unit 5 (jupiter)

我希望将系统属性传递给我的测试,以便配置测试

我正在使用此命令运行测试 gradle test -Denv=envFile1

这是我的gradle文件:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'org.junit.platform:junit-platform-gradle-plugin:1.0.0-M4' //JUnit 5
    }
}

repositories {
    mavenCentral()
}   

ext.versionJunitPlatform        = '1.0.0-M4'
ext.versionJunitJupiter         = '5.0.0-M4'
ext.versionLog4j                = '1.2.17'
ext.versionRestAssured          = '2.9.0'
ext.versionRestAssuredJsonValid = '3.0.2'
ext.versionHamcrest             = '1.3'
ext.versionJacksonDatabind      = '2.9.0.pr2'
ext.versionSeleniumJava         = '3.3.1' 

test {
    systemProperties System.properties
    systemProperty 'env1', System.properties['env']
    systemProperty 'env2', 'i am a static env'
}

dependencies {
    compile group: 'log4j'                      , name: 'log4j'                 , version: "$versionLog4j"               
    compile group: 'com.jayway.restassured'     , name: 'rest-assured'          , version: "$versionRestAssured"         
    compile group: 'io.rest-assured'            , name: 'json-schema-validator' , version: "$versionRestAssuredJsonValid"    
    compile group: 'org.hamcrest'               , name: 'hamcrest-all'          , version: "$versionHamcrest"     
    compile group: 'com.fasterxml.jackson.core' , name: 'jackson-databind'      , version: "$versionJacksonDatabind" 
    compile group: 'org.seleniumhq.selenium'    , name: 'selenium-java'         , version: "$versionSeleniumJava"    

    testCompile group: 'org.junit.jupiter' , name: 'junit-jupiter-api'     , version: "$versionJunitJupiter"
    testRuntime group: 'org.junit.jupiter' , name: 'junit-jupiter-engine'  , version: "$versionJunitJupiter"
}

这是我的测试:

package com.somecompany.someProject.tests;

import org.junit.jupiter.api.Test;

public class AaTest {
    @Test
    public void a() {
        System.out.println("a env: " + System.getProperty("env"));
        System.out.println("a env1: " + System.getProperty("env1"));
        System.out.println("a env2: " + System.getProperty("env2"));
    }
} 

这是我得到的输出:

gradle test -Denv=envName
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:compileTestJava
:processTestResources UP-TO-DATE
:testClasses
:junitPlatformTest
a env: null
a env1: null
a env2: null

*我已更新问题

蛋白石

在早期版本的junit中,它将与以下代码一起工作:

test {
   systemProperties System.properties
}

要么

test {
   systemProperty 'env', System.properties['env']
}

-D在命令行中使用时,它将传递给gradle构建脚本,而不传递给JVM。

但是,它似乎不适用于最新版本,请在此处查看

junitPlatform扩展/任务目前不支持systemProperty。当Gradle团队将对JUnit 5的支持添加到核心Gradle中时,情况将会改变。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

JUnit5:如何重复失败的测试?

如何使用Jupiter Junit5平台的老式引擎通过gradle配置按类别运行JUnit4测试

使用Junit5进行Gradle多项目集成测试

如何在JUnit5中测试WireMockServer?

如何使用 JUnit5 在 OpenEJB 中测试 EJB Bean?

如何在JUnit5中测试列表?

如何测试方法抛出异常junit5

如何在JUnit5中测试引发异常?

如何在JUnit5中管理失败的测试

如何运行基于 JUnit5 的测试套件?

如何让android studio“gradlew test”执行junit5测试?

无法使用Spring Boot Gradle插件通过依赖项管理执行junit5测试

MapStruct无法通过Spring-boot测试Gradle Junit5自动工作

如何使用Junit5和Jacoco配置build.gradle以进行测试覆盖

未通过测试运行器JUnit5找到测试

单元测试ServiceBus.Message。如何设置SystemProperties.LockToken的值?

如何在JUnit5中为测试套件设置自定义测试执行顺序?

如何会在春天开机并行测试jUnit5 - 黄瓜5版多

如何在多模块项目中使用 JUnit5 和 SpringBoot2 通过 gradle 而不是 intelliJ 运行测试

是否可以选择在JUnit5 / Gradle中用标签组合注释的测试?

如何使用Maven运行作为插件安装到Eclipse应用程序的JUnit5测试

如何使用 JUnit5 在 Micronaut 的控制器测试中模拟服务类?

如何使用@RunWith(classOf [JUnitRunner])升级到Scala测试的JUnit5?

如何重复JUnit5测试上一流的水平?

如何将列表作为JUnit5的参数化测试参数传递?

如何将假设应用于 Junit5 中的所有嵌套测试?

如何配置Maven插件以运行Spock和Junit5测试

如何使用JUnit5为Kafka消息使用者测试PACT

如何在并行模式下运行有序的JUnit5测试