在IntelliJ中为测试设置java系统属性

时间:2018-04-05 11:12:46

标签: java gradle intellij-idea

在我的基于gradle的项目中,我有以下集成测试目标:

task integrationTests(type: Test, group: "Test") {
    testClassesDir = sourceSets.integrationTest.output.classesDir
    classpath = sourceSets.integrationTest.runtimeClasspath
    mustRunAfter test

    useJUnit {
        maxParallelForks 2
    }

    systemProperty 'application.name', 'applicationName'
}

它从命令行运行得很漂亮,但是在IntelliJ中,它出现错误:Application startup failed MDC:[requestId=, userGuid=] java.lang.IllegalStateException: required key [application.name] not found

我见过这个帖子:Set java system properties in IntelliJ or Eclipse并且了解如何为(测试)任务设置系统属性甚至默认属性。

但是有没有办法让IJ“理解”gradle配置或以某种方式让它使用systemProperty

1 个答案:

答案 0 :(得分:0)

这是一个古老的问题,自那以后我已经解决了很多次。

所以一个人需要做两件事: 1.在您的IJ的测试Vm选项中添加-Dapplication.name=appName 2.在build.gradle中找到gradle任务(或创建一个新任务),并为application.name系统属性添加特定的映射,如下所示:

bootRun {
    systemProperties['application.name'] = System.getProperty("applicagtion.name")
    ...
}