去年書いた
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