我想知道在为应用程序运行测试时,如何将所有Application.resources文件的内容附加到单个文件中?
每次运行测试时,都必须从src/resources/Application.properties
文件到test/resource/Application.properties
文件添加一些配置。
我怎样才能获得这个?
我正在使用Spring和Gradle
答案 0 :(得分:0)
可以这样做,例如以下列方式(需要将主要资源内容附加到测试资源文件,保留旧测试资源以进行测试执行,然后交换文件):
apply plugin: 'java'
test {
doFirst {
def testRes = project.file('src/test/resources/test.resources')
def mainRes = project.file('src/main/resources/main.resources')
project.copy {
from 'src/test/resources'
into 'src/test/resources'
include('test.resources')
rename {
'test.resources.old'
}
}
testRes << '\n'
testRes << mainRes.text
logger.lifecycle('\nmain.resources text: ')
logger.lifecycle(mainRes.text)
logger.lifecycle('\ntest.resources text: ')
logger.lifecycle(testRes.text)
logger.lifecycle('\ntest.resources.old text: ')
logger.lifecycle(project.file('src/test/resources/test.resources.old').text)
}
doLast {
def testOldRes = project.file('src/test/resources/test.resources.old')
testOldRes.renameTo(project.file('src/test/resources/test.resources'))
logger.lifecycle('\nmain.resources text: ')
logger.lifecycle(project.file('src/main/resources/main.resources').text)
logger.lifecycle('\ntest.resources text: ')
logger.lifecycle(project.file('src/test/resources/test.resources').text)
logger.lifecycle("\ntest.resources.old exists: ${project.file('src/test/resources/test.resources.old').exists()}")
}
}
可以找到Runnable演示here。
答案 1 :(得分:0)
在Spring中,您可以从现有资源导入数据。基本上,您需要为测试模块创建一个Spring上下文文件,并使用以下标记从src / resources导入Application.properties的内容。
<import resource="src/resources/*.properties"/>