JUnit テストケース実行範囲の指定

去年書いた
oboe2uran.hatenablog.com
この時点では、JUnitテストケースの任意のケースの順番の範囲指定で、
番号が連番での実行だけでしたが、1,3,5,13,17~のように、
任意の順番のみの指定をサポートしていませんでした。

任意の順番のみの指定ができるように、

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface TestRange {
    int start() default 1;
    int end()   default 0;
    int[] x()  default {};
}

配列 int で指定するようにして、xが指定されたら配列優先で実行します。
このJUnitテストケース範囲指定実行 をGit-Hub に置く Maven リポジトリで公開することにしました。

https://github.com/yipuran/junit-order


簡単な使用方法説明は、Wiki に記載

今回、主な修正のポイントは、、
BlockJUnit4ClassRunner 継承の computeTestMethods メソッドで FrameworkMethod のList を返す成果物を
作るのに、@TestRange で、int[] x() が指定された時に、配列に格納された番号の @Order が付与された
メソッドを List にして返すようにするということです。

junit-order/OrderedRunner.java at master · yipuran/junit-order · GitHub