您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
自定義注解過濾JUnit測試類
作者:網(wǎng)絡轉(zhuǎn)載 發(fā)布時間:[ 2013/10/28 15:59:00 ] 推薦標簽:

  由于IgnoredBuilder中是通過讀取類注解的方法,我們不妨類似定義自己的Ignore注解:
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.METHOD, ElementType.TYPE })
public @interface MyIgnore {
String value() default "";
}
  然后,新建與JUnit源碼中同名的包org.junit.internal.builders,并在其中新建同名文件AllDefaultPossibilitiesBuilder,拷貝進來JUnit同名文件的源碼,并修改/添加其中如下部分:
@Override
public Runner runnerForClass(Class<?> testClass) throws Throwable {
List<RunnerBuilder> builders= Arrays.asList(
ignoredBuilder(),
myBuilder(),
annotatedBuilder(),
suiteMethodBuilder(),
junit3Builder(),
junit4Builder());
for (RunnerBuilder each : builders) {
Runner runner= each.safeRunnerForClass(testClass);
if (runner != null)
return runner;
}
return null;
}
protected MyBuilder myBuilder() {
return new MyBuilder();
}
  并在這個包下,定義自己的Builder:
public class MyBuilder extends RunnerBuilder {
@Override
public Runner runnerForClass(Class<?> testClass) throws Throwable {
if (testClass.getAnnotation(MyIgnore.class) != null) {
if (...) //自定義過濾條件
return new IgnoredClassRunner(testClass);
}
return new BlockJUnit4ClassRunner(testClass);
}
}
  這樣,只要在測試類上添加自定義注解@MyIgnore,即可根據(jù)自定義過濾條件決定該類運行與否。

上一頁123下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd