Gradle (2.1) と IntelliJ (14.0.2) がうまく動作するようにしようとしています。具体的には、統合テスト用の別のソース セットを含むサンプル Gradle プロジェクトを IntelliJ にインポートしました。
プロジェクトは、コマンド ラインで Gradle を使用して正常にビルドされ、統合テストを正常に実行できます。一方、IntelliJ 内で実行する場合、次の 2 つの問題があります。
1) IntelliJ 内でのコンパイルが失敗します。これは、解決に失敗したサードパーティ ライブラリ (commons-collections) への統合テストの依存関係が原因です。
2) 上記の依存関係を削除してコンパイルすると、IntelliJ 内で統合テストを実行できません。次のエラー メッセージが表示されます。
指定されたインクルードのテストが見つかりません: [org.gradle.PersonIntegrationTest.canConstructAPersonWithAName]
ファイル構造は次のようになります。
src
integration-test
java
resources
main
java
resources
test
java
resources
build.gradle
そしてbuild.gradle:
apply plugin: 'java'
repositories {
mavenCentral()
}
sourceSets {
integrationTest {
java.srcDir file('src/integration-test/java')
resources.srcDir file('src/integration-test/resources')
}
}
dependencies {
testCompile 'junit:junit:4.11'
integrationTestCompile 'commons-collections:commons-collections:3.2'
integrationTestCompile sourceSets.main.output
integrationTestCompile configurations.testCompile
integrationTestCompile sourceSets.test.output
integrationTestRuntime configurations.testRuntime
}
task integrationTest(type: Test, dependsOn: jar) {
testClassesDir = sourceSets.integrationTest.output.classesDir
classpath = sourceSets.integrationTest.runtimeClasspath
systemProperties['jar.path'] = jar.archivePath
}
check.dependsOn integrationTest
この作業を行う方法についてのアイデアは大歓迎です。
Gradle の完全なサンプル プロジェクトは、Gradle ディストリビューションの samples/java/withIntegrationTests にあります。