GradleでEnclosedテストが2回実行されることの対策
@irofさんのエントリーで、GradleでEnclosedのテストが二回実行されるんだ。
「あとではまる」とブックマークしたらば、3ヶ月後にちゃんとはまりましたw
で、原因ですが、Groovyでコンパイルされた後のネストクラスが、トップレベルのクラスとして認識されるため、Eclosedで実行され、かつ通常のJUnitテストとして実行されるのが、おそらくは原因。
回避策は2つ。
1つはEnclosedテストランナーを利用しないw
というか、@RunWithの部分をコメントアウトすればOK。
もう一つは、テストの実行時に除外クラスを指定すること。つまり、build.gradle に次のように設定する。
test {
exclude '**/*$*'
}
ネストクラスやインナークラスは、「アウタークラス$インナークラス」となるため、$で判断してます。
exclude '**/*Test$*'
でもいいかも