在我的基于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
?
答案 0 :(得分:0)
这是一个古老的问题,自那以后我已经解决了很多次。
所以一个人需要做两件事:
1.在您的IJ的测试Vm选项中添加-Dapplication.name=appName
2.在build.gradle
中找到gradle任务(或创建一个新任务),并为application.name
系统属性添加特定的映射,如下所示:
bootRun {
systemProperties['application.name'] = System.getProperty("applicagtion.name")
...
}