是否有注释或其他一些方便的方法来忽略特定Android SDK版本的junit测试?是否有类似于Lint注释TargetApi(x)的东西?或者我是否需要手动检查是否使用Build.VERSION运行测试?
我认为没有准备好的东西,但为此创建自定义注释非常容易.
创建自定义注释
@Target( ElementType.METHOD )
@Retention( RetentionPolicy.RUNTIME)
public @interface TargetApi {
int value();
}
Run Code Online (Sandbox Code Playgroud)
Ovverride测试运行器(将检查值并最终忽略/触发测试)
public class ConditionalTestRunner extends BlockJUnit4ClassRunner {
public ConditionalTestRunner(Class klass) throws InitializationError {
super(klass);
}
@Override
public void runChild(FrameworkMethod method, RunNotifier notifier) {
TargetApi condition = method.getAnnotation(TargetApi.class);
if(condition.value() > 10) {
notifier.fireTestIgnored(describeChild(method));
} else {
super.runChild(method, notifier);
}
}
}
Run Code Online (Sandbox Code Playgroud)
并标记您的测试
@RunWith(ConditionalTestRunner.class)
public class TestClass {
@Test
@TargetApi(6)
public void testMethodThatRunsConditionally() {
System.out.print("Test me!");
}
}
Run Code Online (Sandbox Code Playgroud)
刚刚测试过,它对我有用.:)
| 归档时间: |
|
| 查看次数: |
2276 次 |
| 最近记录: |