2014年7月11日金曜日

GradleがJUnitのテストを実行する時、どうやってテストクラスが選ばれるのか?

知らない。

が気になる。

スイートを作ってJUnitでシナリオテストをやっているのだが、順序良く実行される前提になっている(シナリオなだけに)ので、個別のテストをスイート以外から実行してほしくない。で、スイートは確実に実行してほしい。

ローカルではテストが全部通るのに、Gradleでやると不可解なNGが出るのはこのあたりに問題が隠れているのではないか、と。


結局、build.gradleに、

test {
include '**/Test*.*'
}
と書いて、TestXXXなテストだけ実行するようにした。
たぶん、これで意図通りに出来たと思う。テスト通ったし。

JUnit4はテストクラスの名前はどうでもいいわけなので、
スイートであれ単体であれ、Gradleに直接実行させたいのだけTestXXという名前にする、という単純なルールを守れば、配置や何かを気にしなくてもいいので楽じゃないかなと。

なお、「**」って何だよ、と思ったが、まあ大方の予想通り、こういうことだった。

Patterns may include:
  • '*' to match any number of characters
  • '?' to match any single character
  • '**' to match any number of directories or files

1 件のコメント:

  1. こんばんは。

    ワイルドカード、ディレクトリやファイル用のがあるんですね。

    返信削除