Java Gradle test log4j.xml
抱歉,如果这还不够信息,gradle新手,如果需要更多信息,请告诉我。 我在gradle.properties文件中定义的配置文件夹中有一个log4j2.xmlJava Gradle test log4j.xml,java,gradle,log4j2,Java,Gradle,Log4j2,抱歉,如果这还不够信息,gradle新手,如果需要更多信息,请告诉我。 我在gradle.properties文件中定义的配置文件夹中有一个log4j2.xml project.ext.logConfigFile="./config/log4j2.xml" 我的项目结构 项目 src 测试 lib 配置 log4j2.xml 现在,当我运行gradle测试时,它说找不到log4j2配置 这就是我的build.gradle文件的样子 sourceSets { test {
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)"
}
}
}
}
我在网上找到了很多东西,这就是为什么在“测试日志”部分有这么多陈述。但基本上,我有LOGGER.info()语句不会出现,因为它只默认为错误
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
我能告诉gradle test我的log4j2.xml的确切位置吗?像这样的?虽然我认为这不管用
tasks.withType(Test) {
systemProperty 'log4j.configuration', logConfigFile
}
现在有点卡住了。谢谢 只需将其放入
src/test/resources
。这在测试过程中首先出现在类路径上。然后将log4j配置为从类路径而不是文件路径加载;我认为这是默认行为,不管怎样相信我解决了这个问题,您只需定义资源在源集中的位置即可。它将在那里查找log4j2.xml
sourceSets {
test {
java {
srcDirs = ["test"]
}
resources {
srcDirs = ["config"]
}
}
main {
java {
srcDirs = ["src"]
}
}
}
这是在做什么任务?使用类型(Test)?所以…我认为这使得所有的测试都采用这个系统属性?这意味着所有测试都将使用log42.xml文件。真的不太肯定,我从互联网上的某个地方抓到了它。如果不是正确的方法,我很乐意摆脱它。这也行得通,但涉及到我改变目录结构,我找到了一个不同的解决方案,如果我只是RTFM的话。谢谢你!因此,发明自己的项目结构而不是遵循我建议的方法是更好的?我不知道你的情况,但如果我是由hourAgree支付报酬的话,这将是很好的,但我不想对现有的代码库做太多修改。我们最终应该达成一致,达成共识。