0

したがって、この構成を使用して統合テストを実行する方法をセットアップしました。

test {
    exclude "**/*IntegrationTest*.class"
}

task integrationTest(type: Test, dependsOn: testClasses) {
    include "**/*IntegrationTest*.class"
}

check.dependsOn integrationTest

よく働く。しかし、その後、統合テストにログインするために、本番環境で使用されるディレクトリではなく、特定のディレクトリの log4j.properties ファイルを使用したいと考えていますsrc/main/resoures

私はこれを試しましたが、うまくいきませんでした:

  integrationTest.classpath = files("$rootDir/test/src/main/resources/log4j.properties") + integrationTest.classpath

また、ファイルを除外できるかどうかを確認しようとしましたが、方法が見つかりませんでした。これを試しました:

  processTestResources.exclude "**/*log4j.properties"

1 つのプロパティ ファイルを本番環境に含め、別のプロパティ ファイルをテスト用に含めるための提案はありますか?

4

2 に答える 2

1

'test' log4j.propertiesをディレクトリに配置すると、実際には、テスト/統合テストのクラスパスのsrc/test/resources何よりも前に配置されます。src/main/resources

別の解決策は、本番用のlog4j.propertiesがsrc / main / resourcesにないようにバンドルを設定することですが、別のディレクトリからjarに追加されます...

jar {
  from('production') {
    include('log4j.properties')
  }
}

log4j.propertiesファイルを現在の場所に保持したい場合は、試したことでほぼ完了です。クラスパスには、jarファイルまたはリソースを含むディレクトリのいずれかを含めることができます。だからこれをやってみてください:

integrationTest.classpath = files("$rootDir/test/src/main/resources") + integrationTest.classpath
于 2012-12-27T09:08:09.827 に答える
0

.jar タスクに後で含めるように、次のようなこともできるようです。

sourceSets {
  main {
    java {
      srcDir 'src/main/java'
      output.classesDir   = 'build/classes/main'      
    }
    resources {
      srcDir 'src/main/resources'
      include 'logback.xml'
      output.resourcesDir = 'build/resources/main'
    }
  }
}
于 2013-02-26T16:02:49.863 に答える