web-dev-qa-db-ja.com

Gradle:いくつかのテストを除外する方法は?

俺の src/test/フォルダーには、単体テストと機能テストの両方が含まれます。機能テストのクラスパスにはWord cucumberがありますが、単体テストにはありません。それでは、単体テストのみを実行するにはどうすればよいですか?

どうもありがとうございました。

P.S。:「選択」ロジックを使用してテストを選択するのは簡単だと知っています。たとえば、私の場合にのみ機能テストを実行するには、単にこれを使用できます
./gradlew test -Dtest.single=cucumber/**/
ただし、簡単な方法でテストを除外する方法はわかりません。

ところで、私はgradle 1.11を使用しています。

25
JBT

ドキュメント タスクの説明、例とすべて:

apply plugin: 'Java' // adds 'test' task

test {
  // ...

  // explicitly include or exclude tests
  include 'org/foo/**'
  exclude 'org/boo/**'

  // ...
}
22
JB Nizet

クレジット:この回答は、JB Nizetの回答に触発されました。私の質問により直接的であるため、投稿されています。

単体テストのみを実行するには、次のような新しいタスクを作成します。

task unitTest( type: Test ) {
    exclude '**/cucumber/**'
}

このように:
すべてのテストを実行します:./gradlew test
すべての単体テストを実行します:./gradlew unitTest
すべての機能テストを実行します:./gradlew test -Dtest.single=cucumber/**/

31
JBT

これは、外部システムのプロパティに基づいて除外できます。

-Dtest.profile=integration

そしてbuild.gradleで

test {
    if (System.properties['test.profile'] != 'integration') {
    exclude '**/*integrationTests*'
   }
}
5
shabinjo