很抱歉,如果这不是足够的信息,请通知gradle,如果需要更多信息,请与我们联系。 我在一个配置文件夹中有一个log4j2.xml,我在gradle.properties文件中定义。
project.ext.logConfigFile="./config/log4j2.xml"
我的项目结构
项目
SRC
测试
LIB
配置
log4j2.xml
现在当我运行gradle测试时,它说它无法找到log4j2配置。
这就是我的build.gradle文件的样子..
sourceSets {
test {
java {
srcDirs = ["test"]
}
}
main {
java {
srcDirs = ["src"]
}
}
}
test {
testLogging {
outputs.upToDateWhen {false}
showStandardStreams = true
events "PASSED", "STARTED", "FAILED", "SKIPPED"
afterSuite { desc, result ->
if (!desc.parent) { // will match the outermost suite
println "Results: ${result.resultType} (${result.testCount} tests, ${result.successfulTestCount} successes, ${result.failedTestCount} failures, ${result.skippedTestCount} skipped)"
}
}
}
}
一直在浏览我在互联网上找到的东西,这就是“testLogging”部分中所有这些陈述的原因。但基本上,我有LOGGER.info()语句没有出现,因为它只是默认错误。
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
我可以告诉gradle测试我的log4j2.xml的具体位置吗?像这样的东西?虽然我不认为这有用......
tasks.withType(Test) {
systemProperty 'log4j.configuration', logConfigFile
}
现在有点卡住了。谢谢!
答案 0 :(得分:0)
只需将其放入src/test/resources
即可。这在测试期间首先出现在类路径上。然后配置log4j从类路径加载,而不是文件路径;我认为这是默认行为
答案 1 :(得分:0)
相信我解决了这个问题,你只需要在sourceSets中定义资源的位置。它将在那里查找log4j2.xml。
sourceSets {
test {
java {
srcDirs = ["test"]
}
resources {
srcDirs = ["config"]
}
}
main {
java {
srcDirs = ["src"]
}
}
}