複数のテスト スイートを含む既存のプロジェクトに Gradle (1.4) を追加しようとしています。にある標準ユニット テストsrc/test/java
は正常に実行されましたが、 にある JUnit テストを実行するタスクの設定に問題がありますsrc/integration-test/java
。
実行すると、 のクラスでgradle intTest
いくつかのcannot find symbol
エラーが発生しますsrc/main
。これにより、依存関係が正しく設定されていないと思います。intTest
JUnit 統合テストを実行するようにセットアップするにはどうすればよいですか?
build.gradle
apply plugin: 'java'
sourceCompatibility = JavaVersion.VERSION_1_6
sourceSets {
integration {
java {
srcDir 'src/integration-test/java'
}
resources {
srcDir 'src/integration-test/resources'
}
}
}
dependencies {
compile(group: 'org.springframework', name: 'spring', version: '3.0.7')
testCompile(group: 'junit', name: 'junit', version: '4.+')
testCompile(group: 'org.hamcrest', name: 'hamcrest-all', version: '1.+')
testCompile(group: 'org.mockito', name: 'mockito-all', version: '1.+')
testCompile(group: 'org.springframework', name: 'spring-test', version: '3.0.7.RELEASE')
integrationCompile(group: 'junit', name: 'junit', version: '4.+')
integrationCompile(group: 'org.hamcrest', name: 'hamcrest-all', version: '1.+')
integrationCompile(group: 'org.mockito', name: 'mockito-all', version: '1.+')
integrationCompile(group: 'org.springframework', name: 'spring-test', version: '3.0.7.RELEASE')
}
task intTest(type: Test) {
testClassesDir = sourceSets.integration.output.classesDir
classpath += sourceSets.integration.runtimeClasspath
}
詳細: Gradle 1.4
解決策:統合テスト ソース セットのコンパイル クラスパスを設定していませんでした (以下を参照)。私のコードではsourceSets.test.runtimeClasspath
、「integrationCompile」の依存関係が重複しないように、コンパイル クラス パスを に設定しています。
sourceSets {
integrationTest {
java {
srcDir 'src/integration-test/java'
}
resources {
srcDir 'src/integration-test/resources'
}
compileClasspath += sourceSets.main.runtimeClasspath
}
}