私たちの Gradle プロジェクトでは、他のサブプロジェクトからの依存関係にアクセスできる必要があるが、完全なプロジェクト ビルドの一部として実行されない機能テスト用の新しいモジュールを追加したいと考えています。これを試すと、ビルドは実行されます。
def javaProjects() {
return subprojects.findAll { it.name != 'functional-tests' }
}
configure(javaProjects()) {
...
}
project(':functional-tests') {
....
}
functional-tests ビルドを独自の別の build.gradle ファイルに移動しても、結果は同じです。これを実現する方法を誰か教えてもらえますか?
ベストアンサー1
コマンドラインまたはビルド ファイル経由で機能テストを実行しないようにする方がよい解決策であることがわかりました。
たとえば、機能テストを除くすべてのテストを実行するには、次のコマンドを実行します。
$ gradle check -x :functional-tests:check
次に、プロジェクトをビルドするときに、サブプロジェクトをビルドしながら、そのテストを実行から除外することができます。
$ gradle clean assemble -x :functional-tests:check
より良い選択肢は、プロパティが設定されていない限り、ビルド ファイル内の機能テストを無効にすることです。たとえば、次のようにbuild.gradle
追加します。
project('functional-tests') {
test {
onlyIf {
project.hasProperty("functionalTests")
}
}
}
この方法では、特定のビルド プロパティを指定しない限り、機能テストは常にスキップされます。
$ gradle check
$ gradle -PfunctionalTests check
お役に立てれば幸いです!