我们如何才能自动仅 运行 测试较新的 Android 版本?
How can we automatically only run tests on newer Android versions?
我发现一项测试尤其在 KitKat 之前的设备上始终失败。我认为这与旧 Android 设备上使用的嵌入式 WebView 的变化有关(但这可能是错误的)。无论如何,回到我的问题:我想要一种优雅的方式来控制测试是否 运行 取决于设备上 运行ning 的 Android 版本。
目前,如果 运行time 早于 KitKat,我会使用短路测试并通过测试的代码。这是相关代码:
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
assertTrue("Skipping this test as the Android version is too low.", true);
return;
}
我已经尝试依次使用两个注释:@TargetApi
和 @RequiresApi
例如
@Test
@RequiresApi(Build.VERSION_CODES.KITKAT)
public void zimTest() {
Log.v("kiwixTesting", "Running zimTest() on Android version: " + Build.VERSION.SDK_INT);
...
}
在这两种情况下,测试都是在我的测试设备上进行的 运行(包括 Android 4.3、4.3、4.4 和更新版本)。我可以说是因为测试 运行ner 显示测试 运行 成功,并且以下日志消息的输出
Log.v("kiwixTesting", "Running zimTest() on Android version: " + Build.VERSION.SDK_INT);
出现在日志中。
完整代码为here and I'm tracking the work here
有人能提出比我更好的方法吗?谢谢。
你可能想看看 SdkSuppress
注解。它有两种方法 -- maxSdkVersion 和 minSdkVersion,您可以根据需要使用它们。
我发现一项测试尤其在 KitKat 之前的设备上始终失败。我认为这与旧 Android 设备上使用的嵌入式 WebView 的变化有关(但这可能是错误的)。无论如何,回到我的问题:我想要一种优雅的方式来控制测试是否 运行 取决于设备上 运行ning 的 Android 版本。
目前,如果 运行time 早于 KitKat,我会使用短路测试并通过测试的代码。这是相关代码:
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
assertTrue("Skipping this test as the Android version is too low.", true);
return;
}
我已经尝试依次使用两个注释:@TargetApi
和 @RequiresApi
例如
@Test
@RequiresApi(Build.VERSION_CODES.KITKAT)
public void zimTest() {
Log.v("kiwixTesting", "Running zimTest() on Android version: " + Build.VERSION.SDK_INT);
...
}
在这两种情况下,测试都是在我的测试设备上进行的 运行(包括 Android 4.3、4.3、4.4 和更新版本)。我可以说是因为测试 运行ner 显示测试 运行 成功,并且以下日志消息的输出
Log.v("kiwixTesting", "Running zimTest() on Android version: " + Build.VERSION.SDK_INT);
出现在日志中。
完整代码为here and I'm tracking the work here
有人能提出比我更好的方法吗?谢谢。
你可能想看看 SdkSuppress 注解。它有两种方法 -- maxSdkVersion 和 minSdkVersion,您可以根据需要使用它们。