前回のように、調整でGradleの test
タスク実行を繰り返していると、変更がない場合 UP-TO-DATE
となって実行されない。
gradle clean test
ではコンパイルからやり直しだし、いちいちテストを変更して再実行するのも面倒。手軽にテストを再実行する方法を調べたのでメモ。
環境
Groovy v3.0.3, Gradle v6.3。
--rerun-tasks
--rerun-tasks
を付与して実行すると、各タスクがUP-TO-DATEチェックを無視して強制実行される。
ただし、指定したタスクだけでなく依存タスクまで再実行されるため、 gradle test --rerun-tasks
ではcleanした場合と変わらず、コンパイルなどから再実行される。
cleanTest
The Java Plugin を見ると、 clean${TaskName}
とタスク名を指定することで、指定したタスクの成果物のみ削除することができる模様。
gradle cleanTest test
とすると、 compileJava
などはUP-TO-DATEのまま、test
のみ再実行された。
自作タスクのclean
前回作った fastTest
タスクを再実行する場合、 gradle cleanFastTest fastTest
となる。
試しに gradle fastTest
してから gradle cleanTest fastTest
したところ、 fastTest
はUP-TO-DATEで実行されなかった。
振り返り
Mavenでは mvn test
するとテスト実行は必ず行われていたように思う。
コンパイルはともかく、テストの実行はスキップしてほしくないので、やっぱりGradleよりMavenのほうが好きだな...
備考
UP-TO-DATEとなる条件を定義することもできる模様。