在测试时组合Application.properties文件

时间:2015-02-28 12:38:34

标签: java spring gradle

我想知道在为应用程序运行测试时,如何将所有Application.resources文件的内容附加到单个文件中?

每次运行测试时,都必须从src/resources/Application.properties文件到test/resource/Application.properties文件添加一些配置。

我怎样才能获得这个?

我正在使用Spring和Gradle

2 个答案:

答案 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"/>