テストなしのGradleビルド


回答:


1242

-xタスクを除外するコマンドライン引数を使用する必要があります。

試してください:

gradle build -x test 

更新:

Peterのコメントのリンクが変更されました。ここでからGradleのユーザーガイドが


45
これが正解です。'gradle assembly'は他の多くのタスクも除外します。このを参考にしてください。通常の実際のビルドでは、「gradle assembly」を実行するとさらに多くのタスクが省略されます。
Peter Niederwieser、2011

13
@PeterNiederwieserからのリンクは無効になりました。おそらく彼はこの図を参照していたでしょう:gradle.org/docs/current/userguide/img/javaPluginTasks.png
Dave L.

9
たとえば-x integTest、追加する必要がある場合もありますが、Mavenの毛布ほど便利ではありません-DskipTests
Jesse Glick 2013

1
@c_maker、これを日食から実行する方法は?
rinuthomaz

クラスファイルを実行することは可能ですか?私は、意味run、私は私のHelloプログラムの効果を見ることができます。しかし、それはすべてを再びコンパイルしていると思います。Javaプログラムを実行したいだけです。
Sigur 2016年

107

試してください:

gradle assemble

プロジェクトで使用可能なすべてのタスクを一覧表示するには、次のことを試してください。

gradle tasks

更新:

これは最初は最も正しい答えとは思えないかもしれませんが、gradle tasks出力またはドキュメントを注意深く読んでください。

Build tasks
-----------
assemble - Assembles the outputs of this project.
build - Assembles and tests this project.

8
単体テストをデバッグする場合の追加のヒントとして、gradle assembleメインファイルをコンパイルしません。単体テストを修正gradle assemble testClassesするために作業する場合は、必要です—ビルドタスクの命名は非常にわかりにくいと思います。
マーティン

36

受け入れられた答えは正しいものです。

OTOH、これを以前に解決した方法は、すべてのプロジェクトに以下を追加することでした:

test.onlyIf { ! Boolean.getBoolean('skip.tests') }

ビルドを実行すると-Dskip.tests=true、すべてのテストタスクがスキップされます。


3
-xテストは開始プロジェクトでのみ機能し、マルチプロジェクトビルド(gradle 2.1でテスト済み)の依存関係では機能しないため、私にとってこれはまだ唯一の有効なオプションです。ルートbuild.gradleのconfigure(subprojects.findAll {javaProjects.contains(it.name)}){}ブロックにtest.onlyif ...を配置すると、すべてのプロジェクトで機能します。
ティム

いいね。この方法は、mavenユーザーにはおなじみです。
AlexR 2017年

23

次の行をに追加してbuild.gradle**/*すべてのテストを除外できます。

test {
    exclude '**/*'
}

2
これが最良の答えです。私見
Marco Sulla

1
ありがとう!あなたの答えは役に立ちました。
JAY PATEL


4

参照

Gradleからタスクを除外するには、-xコマンドラインオプションを使用します。以下の例を参照してください

task compile << {
    println 'task compile'
}

task compileTest(dependsOn: compile) << {
    println 'compile test'
}

task runningTest(dependsOn: compileTest) << {
    println 'running test'
}
task dist(dependsOn:[runningTest, compileTest, compile]) << {
    println 'running distribution job'
}

出力: gradle -q dist -x runningTest

task compile
compile test
running distribution job

これがあなたに基本を与えることを願っています


ページのスクリーンショットを送ってください。このコード行をどこに配置すればよいかわからない...
Hossein Mansouri 2017

このコードはbuild.gradleに
追加

2

プロジェクトでテストタスクを無効にする別の方法は次のとおりです。

tasks.withType(Test) {enabled = false}

この動作は、プロジェクト(またはプロジェクトのグループ)の1つでテストを無効にする場合に必要になることがあります。

この方法は、Javaの「テスト」だけでなく、あらゆる種類のテストタスクで機能します。また、この方法は安全です。ここで私が言いたいことを言いましょう:あなたはさまざまな言語の一連のプロジェクトを持っています:この種のレコードをmainに追加しようとするとbuild.gradle

 subprojects{
 .......
 tests.enabled=false
 .......
}

テストというタスクがない場合、プロジェクトで失敗します


2

-x testスキップテストの実行を使用しますが、これによりテストコードのコンパイルも除外されます。

gradle build -x test 

今回のケースでは、1つの目標がコンパイルで、次の目標がテスト(ビルド->テスト)であるCI / CDプロセスがあります。

したがって、最初のBuild目標として、プロジェクト全体が適切にコンパイルされるようにしたかったのです。このために使用しました:

./gradlew build testClasses -x test

次の目標では、単にテストを実行します。


0
gradle build -x test --parallel

マシンに複数のコアがある場合。ただし、並列クリーンを使用することはお勧めしません。


0

これを試してください:

gradlew -DskipTests=true build


6
@KirankumarDafda-いいえ。既存の回答が受け入れられた場合でも、いつでも回答を投稿できます。新しい答えは、受け入れられた答えよりも優れている場合もあれば、別の方法で解決する場合もあれば、他の人を助ける場合もあります。口コミから
Wai Ha Lee

@WaiHaLeeコメントを編集することはできませんが、新しいユーザーに提案があったので、他のユーザーがこの回答またはコードが役立つかどうか確認できるように、より明確に回答を追加しようとすることを説明したいと思いました。
Kirankumar Dafda

0

Javaプラグイン

$ gradle tasks

Build tasks
-----------
assemble - Assembles the outputs of this project.
build - Assembles and tests this project.
testClasses - Assembles test classes.

Verification tasks
------------------
test - Runs the unit tests.

テストなしのGradleビルドには、2つのオプションがあります。

$ gradle assemble
$ gradle build -x test

しかし、コンパイルテストが必要な場合:

$ gradle assemble testClasses
$ gradle testClasses
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.