是否有注释或其他方便的方法来忽略特定 Android SDK 版本的 junit 测试?有没有类似Lint注解TargetApi(x)的东西?或者我是否必须手动检查是否使用 Build.VERSION 运行测试?
我认为还没有准备好,但为此创建自定义注释非常容易。
创建您的自定义注释
@Target( ElementType.METHOD )
@Retention( RetentionPolicy.RUNTIME)
public @interface TargetApi {
int value();
}
覆盖测试运行程序(将检查值并最终忽略/触发测试)
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);
}
}
}
并标记你的测试
@RunWith(ConditionalTestRunner.class)
public class TestClass {
@Test
@TargetApi(6)
public void testMethodThatRunsConditionally() {
System.out.print("Test me!");
}
}
刚刚测试过,它对我有用。 :)
致谢:有条件地忽略 JUnit 测试 http://blog.xebia.com/2012/10/02/conditionally-ignoring-junit-tests/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)