gpt4 book ai didi

android - 根据 SDK 级别忽略 Android 单元测试

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:37:47 26 4
gpt4 key购买 nike

是否有注释或其他一些方便的方法来忽略特定 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!");
}
}

刚刚测试过,对我有用。 :)

致谢:Conditionally ignoring JUnit tests

关于android - 根据 SDK 级别忽略 Android 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17654249/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com